【发布时间】:2019-10-09 03:40:33
【问题描述】:
我想根据转换矩阵中的值向我的数据框添加一个新列。
我尝试了这个解决方案 [R extract values from matrix given dataframe of x and y,但它似乎适用于作为索引的数字,而且我的行和列都有字符名称。
例如:
r
x<-
cbind(c(0.3,0.35,0.35,0),c(0.2,0.2,0.4,0.2)
,c(0,0.6,0.1,0.3),c(0.5,0.25,0.25,0))
colnames(x) <- c("A","B","C","D")
rownames(x) <- c("A","B","C","D")
y<-as.data.frame(cbind(c(1,2,3,4,5,6)
,c("A","A","B","A","B","A"),c("D","C","C","D","D","D")))
colnames(y) <- c("id","e1","e2")
index_df = y%>% select(e1,e2)
colnames(index_df)<-c('rows','cols')
y[as.matrix(index_df)]
我收到这个错误
as.matrix(x)[i] 中的错误:下标越界
我想用矩阵中的值将列名 l1 添加到 y 数据框
id e1 e2 l1
1 1 A D 0.50
2 2 A C 0.0
3 3 B C 0.2
4 4 A D 0.50
5 5 B D 0.25
6 6 A D 0.50
【问题讨论】: