[英]Filling in a data frame with three different values
所以我正在開發一個使用嵌套循環的項目,因為這是首選方法。 我為下面的最終數據框附加了所需的(壓縮的)output。
1 2 3 4 5 6 7
1 a NA c NA e NA g
2 NA 1 NA 3 NA 5 NA
3 a NA c NA e NA g
4 NA 1 NA 3 NA 5 NA
5 a NA c NA e NA g
6 NA 1 NA 3 NA 5 NA
7 a NA c NA e NA g
8 NA 1 NA 3 NA 5 NA
9 a NA c NA e NA g
10 NA 1 NA 3 NA 5 NA
11 a NA c NA e NA g
12 NA 1 NA 3 NA 5 NA
13 a NA c NA e NA g
14 NA 1 NA 3 NA 5 NA
15 a NA c NA e NA g
16 NA 1 NA 3 NA 5 NA
我已經用交替的行將字母放入框架中,但我很難理解如何使用代碼將數字和 NA 放入框架以及我想要的 output。 這就是我所擁有的。
Project = matrix(nrow=100, ncol=26)
for (i in 1:nrow(Project)) {
if (i %% 2 == 1) {
Project[i, ] <- letters
}
}
我現在需要插入這些數字並獲得我想要的 output,但我對要繼續使用什么代碼一無所知。
您可以使用NA
定義您的矩陣:
# letters to fill, where every even index is NA
fill_letters <- letters
fill_letters[seq(2, 26, by = 2)] <- NA
# numbers to fill, where every even index is NA
fill_numbers <- 0:25
fill_numbers[seq(1, 25, by = 2)] <- NA
matrix(
data = c(fill_letters, fill_numbers),
nrow = 100,
ncol = 26,
byrow = TRUE
)
或者你有給定的填充矩陣,然后通過索引矩陣將NA
放置到位:
mat_result <- matrix(
data = c(letters, 0:25),
nrow = 100,
ncol = 26,
byrow = TRUE
)
mat_index <- matrix(
data = c(rep_len(c(FALSE, TRUE), length.out = ncol(mat_result)),
rep_len(c(TRUE, FALSE), length.out = ncol(mat_result))),
nrow = 100,
ncol = 26,
byrow = TRUE
)
mat_result[mat_index] <- NA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.