gpt4 book ai didi

r - 如何对R中的列应用运算和求和?

转载 作者:行者123 更新时间:2023-12-04 12:31:33 25 4
gpt4 key购买 nike

我想对多列中的值应用一些操作,然后对跨列的每一行的结果求和。我可以使用:

x <- data.frame(sample=1:3, a=4:6, b=7:9)
x$a2 <- x$a^2
x$b2 <- x$b^2
x$result <- x$a2 + x$b2

但这会因许多列而变得艰巨,我想知道是否有人可以提出更简单的方法。请注意,数据框包含我不想包含在计算中的其他列(在此示例中,不包含列 sample)。

非常感谢!

最佳答案

我会简单地对感兴趣的列进行子集化,然后使用 rowSums 将所有内容直接应用到矩阵上功能。

x <- data.frame(sample=1:3, a=4:6, b=7:9)

# put column indices and apply your function
x$result <- rowSums(x[,c(2,3)]^2)

这当然假设您的函数是矢量化的。如果没有,您将需要使用一些 apply变化(你看到了很多)。也就是说,您仍然可以使用 rowSums如果你觉得它像这样有用。注意,我使用 sapply它还返回一个矩阵。
# random custom function
myfun <- function(x){
return(x^2 + 3)
}

rowSums(sapply(x[,c(2,3)], myfun))

关于r - 如何对R中的列应用运算和求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112402/

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