R中的()和[]有什么区别

What's the difference between () and [] in R

x <- c(2,4,6,8,10)

以下结果是什么,

sum(x>5) 
sum(x[x>5])

谁能告诉我它到底是什么意思,我是 R 编程的新手。

x>5 returns FALSE FALSE TRUE TRUE TRUE 由于有 3 个 TRUE,因此总和为 3。它告诉您每个 x 值是否满足条件(x[i]>5?)并对响应求和。

x[x>5] 对每个大于 5 的值进行子集 x,返回 6、8 和 10,它们的总和为 24。

[ 用于根据向量对对象的值进行子集化。有不同的规则,具体取决于您要子集化的对象类型。

( 用于指定将传递给函数的参数。在你的情况下,总和。

有关大括号的更多信息,请参阅 ?"("

您的第一个语句将测试 x 和 return 中的每个元素是否为真。这将分别被强制为 1 和 0 并求和 (0 + 0 + 0 + 1 + 1 + 1 = 3).

第二个语句将仅对大于 5 (6 + 8 + 10 = 24) 的元素进行子集化,并对它们求和。