【问题标题】:apply and custom function to add calculated fields to dataframe in R应用和自定义函数将计算字段添加到 R 中的数据框
【发布时间】:2017-01-24 06:43:59
【问题描述】:

我已经浏览了 R 一个小时左右,试图找到我遇到的问题的答案,但我无法根据我目前看到的答案来解决这个问题。我需要将计算值列表添加到数据框中的新列中。我尝试使用 if 语句执行此操作,但没有成功,我一直在尝试使用 apply 函数和自定义函数来完成此练习。

理论上这是我的数据:

a <- 1:5
b <- 1:5
c <- 1:5

df <- data.frame(a,b,c) 

  a b c
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5

这是我希望嵌入到 lapply 函数中的函数。

func <- function(x){
  (((x/1000)*b)+c)
}

当我尝试运行它时:

lapply(df, function(x) {(((x/1000)*b)+c)})

我得到以下输出:

$a
[1] 1.001 2.004 3.009 4.016 5.025

$b
[1] 1.001 2.004 3.009 4.016 5.025

$c
[1] 1.001 2.004 3.009 4.016 5.025

我确定这是对的,但这不是我要查找的内容,我要生成的是 D 列,即 (((a/1000)*b)+c)。有人可以帮忙吗?

谢谢 牛肉

【问题讨论】:

    标签: r lapply


    【解决方案1】:

    就这么简单?

    a <- 1:5
    b <- 1:5
    c <- 1:5
    
    df <- data.frame(a,b,c) 
    (df$d <- ((df$a/1000)*df$b)+df$c)
    

    【讨论】:

    • 是的,所有的括号也不是必需的。以df$d &lt;- with(df, a/1000 * b + c ) 为例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多