gpt4 book ai didi

R使用向量创建新列包含变量名称

转载 作者:行者123 更新时间:2023-12-04 13:24:01 26 4
gpt4 key购买 nike

我有一个数据和一个包含变量名称的向量,我想在我的向量中创建包含变量行和的新变量,我希望新变量的名称(我的向量中的变量总和)是名称的串联变量

例如我有这个数据

> 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 <- data.frame(A = c(1, 2, 5, 7), 
B = c(5, 4, 15, 8),
C = c(12, 7, 6, 0),
D = c(21, 10, 9, 7),
E = c(15, 9, 6, 18))
Vec <- c("A" , "C" , "D")

data <- cbind(data, rowSums(data[,Vec]))

# Add name
names(data)[ncol(data)] <- paste(Vec, collapse="")


# A B C D E ACD
# 1 1 5 12 21 15 34
# 2 2 4 7 10 9 19
# 3 5 15 6 9 6 20
# 4 7 8 0 7 18 14

关于R使用向量创建新列包含变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69837231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com