【发布时间】:2018-02-13 16:39:01
【问题描述】:
我有这样的数据集:
name state num1 num2 num3
abc rt 10 40 8
def ka 20 50 15
ert pn 30 60 16
我想要每一行的 rowsums。使用 rowsums(data) 时,它抛出的错误如 x 应该是数字。所以新列应该是 num1,num2 和 num3 的总和
【问题讨论】:
-
试试
data$newCol <- rowSums(data[grep("num\\d+", names(data))]或使用 tidyversedata %>% select(matches("num\\d+")) %>% reduce('+') %>% mutate(data, newCol= .) -
感谢您的回复。但这是 z dummy dataset.num1 只是我的专栏的虚拟名称
-
rowsums(data[,sapply(data, is.numeric)]) -
代码也有点假。您可以根据您的列名更改
grep中的模式。在第二种情况下,您可以使用select_if而不是select即data %>% select_if(is.numeric)并使用reduce -
rowsums(data[,sapply(data, is.numeric)]) :这个有效。感谢 Renu 和 Akrun