R:仅当(同一)行(不同)列中的值为true时,才在[row,column]中添加值

时间:2015-01-30 04:29:07

标签: r loops if-statement row calculated-columns

这就是我尝试在R ...中编写的代码。

我们说我有50行和4列。如果(第1行,第2列)中的值大于5,则计算(第1行,第4列)中的值。

例如:(行,列)

如果(1,2)=(6)则计算(1,4)

中的值

如果(2,2)=(8)则计算(2,4)

中的值

如果(3,2)=(4)则不计算(3,4)

中的值

依此类推....然后添加第4列中的所有值。

我如何在R中编码?我尝试过创建函数,循环,if语句等。

1 个答案:

答案 0 :(得分:1)

这不应该太难!只需将您的data.framematrix(不过您的数据存储)设置为仅包含第四列的值,而只包含第二列大于5的行。

sum(yourDataFrame[yourDataFrame[ ,2] > 5, 4])

因为许多R函数是矢量化的,所以使用像sum()这样的矢量化函数比循环更容易(也更快!)。 yourDataFrame[ ,2] > 5将返回逻辑向量。将sum()应用于该向量会将TRUE条目视为1,将FALSE条目视为0,从而提供yourDataFrame[ ,2]中大于5的值的计数。