r - 将函数应用于数据框的列(列是列表)

标签 r list dataframe apply

我有一个包含 2 列的数据框,第一列是 ID 号,第二列是数字列表。我定义了一个对列表求和并加 2 的函数。我想做的是在不使用 for 循环的情况下对所有行进行计算。我试过使用 apply 但我无法让它工作......

代码如下:

测试数据框:

d1 <- c(1,2,3,4,5)
d2 <- c(4,6,8)
d3 <- c(5,10)

df1 <- data.frame(cbind(1, I(list(d1))))
df2 <- data.frame(cbind(2, I(list(d2))))
df3 <- data.frame(cbind(3, I(list(d3))))
df <- rbind(df1, df2, df3)

定义函数sum2:

sum2 <- function(a)
{
  sum(unlist(a)) + 2
}

如何使用 apply 并将第三列添加到包含计算值的 df?

谢谢!

最佳答案

以下适用于您的示例

sapply(df[,2], function(x) sum(x)+2)

关于r - 将函数应用于数据框的列(列是列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41016217/

相关文章:

python - 获得列表联合的最快方法 - Python

pandas - NaN 的总和等于 NaN(非零)

r - 是否可以更改 fmsb 雷达图中标签的颜色?

r - 将字符串迭代为公式

c# - 在 C# 中,如何对 "largest"值位于列表中间的列表中的项目进行排序

html - 带有按钮的可扩展目录

python - 使用 python 的数据透视表

python - 比较 2 个数据框的列

r - 在特定条件下创建二进制矩阵

r - 使用 lpSolveAPI 获取 0/1-Knapsack MILP 的多个解决方案