我正在尝试使用特定列(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
提前致谢!
答案 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