簡體   English   中英

用三個不同的值填充數據框

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM