我已经浏览了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 牛肉
答案 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)