R:如何根据其他列中的值计算列?

时间:2016-04-08 13:33:10

标签: r

我是R的新手

我有一个数据框STAT.VECTORS,有两列A和B. 我需要将列C添加到STAT.VECTORS,以便C [i] = func(A [i],B [i])

在R中执行此操作的语法效率最高的方法是什么?

任何扩展解决方案的方法,使C [i] = func(A [i-1],B [i-2])

有了开发人员背景,我会创建一个循环并为C赋值。我希望R更好:)

更新

以下示例应详细阐述我的问题。循环选择相对于当前行的特定元素并将它们移交给函数。

我可以使用apply family在没有循环的情况下执行下面的循环逻辑吗?

l=50

func=function(x,y){return(y-x)}

a=sample(1:6,l,replace = T)
b=sample(1:6,l,replace = T)
c=sample(1:6,l,replace = T)
d=sample(1:6,l,replace = T)
e=sample(1:6,l,replace = T)
f=vector("numeric",l)
test.data = cbind(a,b,c,d,e,f)

for(i in 2:l)
{
  test.data[i,"f"]= func(test.data[i,"d"],test.data[i-1,"b"])
}
test.data

1 个答案:

答案 0 :(得分:0)

我创建了一个data.frame as,

dfx <- data.frame(a = sample(15), b = sample(15))

dfx$c <- apply(dfx, 1, sum)

这将添加ca之和的列b。而不是sum,您可以放置​​任何具有一定范围值且具有单一输出的函数。

dfx$c <- apply(dfx, 1, <some fun>)