我在R中有一个大数据集,其中一列的每一行都有特定的列名(目标),如下所示,我想做的是检查每一行的列名,从该特定列复制值,并将其粘贴回“目标”列的相关行。
target col1 col2 col3
col1 green one dog
col1 pink two cat
col3 blue three spider
col2 black four pig
col3 purple five elephant
col2 yellow six lion
这是我想要的结果:
target col1 col2 col3
green green one dog
pink pink two cat
spider blue three spider
four black four pig
fox purple five fox
six yellow six lion
我尝试了下面的代码,但在第一个几百行后,它复制了错误的值。
df$target[df$target=="[col1]"] <- df$col1
df$target[df$target=="[col2]"] <- df$col2
df$target[df$target=="[col3]"] <- df$col3
df$target[df$target=="[col4]"] <- df$col4
有什么建议吗?先谢了
2条答案
按热度按时间evrscar21#
您可以使用
sapply
:输出:
注我创建了一个
test
列来检查,但您可以直接覆盖target
数据类型
lmyy7pcs2#
基本矢量化方法:如果使用带“[”的两列数值矩阵,则可以获取行和列的值。
然后将其分配到“目标”列。