我在 R 中有一个数据框,它来自于对熔化/铸造操作的结果运行一些统计数据。我想在包含 Nominal 值的数据框中添加一行。该标称值出现在每列的名称中
df<-as.data.frame(cbind(x=c(1,2,3,4,5),`Var A_100`=c(5,4,3,2,1),`Var B_5`=c(9,8,7,6,5)))
> df
x Var A_100 Var B_5
1 1 5 9
2 2 4 8
3 3 3 7
4 4 2 6
5 5 1 5
所以,我想创建一个新行,在 Var A_100 列中包含“100”,在 Var B_5 中包含“5”。目前这就是我正在做的事情,但我确信必须有更好的矢量化方式来做到这一点。
temp_nom<-NULL
for (l in 1:length(names(df))){
temp_nom[l]<-strsplit(names(df),"_")[[l]][2]
}
temp_nom
[1] NA "100" "5"
df[6,]<-temp_nom
> df
x Var A_100 Var B_5
1 1 5 9
2 2 4 8
3 3 3 7
4 4 2 6
5 5 1 5
6 <NA> 100 5
rm(temp_nom)
通常我会有 16-24 列。有任何想法吗?