应用和自定义函数将计算字段添加到R中的数据框

时间:2017-01-23 22:38:49

标签: r lapply

我已经浏览了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列,这将是(((/ 1000)* b)+ C)。有人可以帮忙吗?

THX 牛肉

1 个答案:

答案 0 :(得分:3)

只是这个?

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

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