使用列中的值填充矩阵的元素

时间:2018-02-25 00:45:15

标签: r

我正在尝试使用特定列(Dependent)中的值填充矩阵。在下面第1行的示例中,Dependent值为3,表示第3列中的1。第4行的Dependent值为2,因此在第2列中放置1。我考虑使用for循环,但感兴趣的是是否有更优雅的方法来解决问题。

Project Dependent   1   2   3   4
1         3                 1   
2                   
3                   
4         2             1
5         4                     1

提前致谢!

1 个答案:

答案 0 :(得分:0)

这是你所描述的。希望它有所帮助

Project<-1:5
Dependent<-c(3,0,0,2,4)
df<-data.frame(Project,Dependent)
df
Project Dependent
1       1         3
2       2         0
3       3         0
4       4         2
5       5         4

s<-matrix(NA, nrow = nrow(df), ncol = nrow(df))
for(i in 1:length(df$Dependent)) {
  if (i > 0 ) s[i,df$Dependent[i]]<-1 else NULL
}
s
  [,1] [,2] [,3] [,4] [,5]
  [1,]   NA   NA    1   NA   NA
  [2,]   NA   NA   NA   NA   NA
  [3,]   NA   NA   NA   NA   NA
  [4,]   NA    1   NA   NA   NA
  [5,]   NA   NA   NA    1   NA