我有一个数据和一个向量包含变量名称,我想创建一个新的变量,其中包含向量中变量的行总和,并且我希望新变量的名称(向量中变量的总和)是变量名称的串联。
例如,我有这个数据:
> data
Name A B C D E
r1 1 5 12 21 15
r2 2 4 7 10 9
r3 5 15 6 9 6
r4 7 8 0 7 18
这个向量。
>Vec
"A" , "C" , "D"
我想要的结果是变量A、C和D的总和,我的变量名为ACD。
这里是我想要的结果:
> data
Name A B C D ACD E
r1 1 5 12 21 34 15
r2 2 4 7 10 18 9
r3 5 15 6 9 20 6
r4 7 8 0 7 14 18
我尝试了这个:
data <- cbind(data , as.data.frame(rowSums(data[,Vec]) ))
但是我不知道如何创建名称
这是我得到的结果
>data
Name A B C D E rowSums(data[,Vec])
r1 1 5 12 21 15 34
r2 2 4 7 10 9 18
r3 5 15 6 9 6 20
r4 7 8 0 7 18 14
这只是一个样例来解释我的意图。
我想将旧数据的影响赋予新数据(包含新变量),就像我在上面的命令中做的那样。
编辑1: 在我的真实程序中,我不知道向量中的元素名称(我的变量名称),所以我不能像Pax建议的那样执行data $ ACD <- cbind(data,as.data.frame(rowSums(data [,Vec])))
。实际上,我有一个for循环来生成我的向量,并且每次都创建一个变量来放置我想要的结果(向量中变量的总和),因此我不知道如何在不知道向量元素的情况下分配名称。
请告诉我如果您需要更多的澄清或信息。
谢谢。
data$ACD <- cbind(data , as.data.frame(rowSums(data[,Vec]) ))
。在我看来,你的计算是错误的,例如对于r1
而言,1+12+21为33而不是34。 - user14692575