R-在数据框中使用括号
R- use of parenthesis in dataframes
我正在处理一个包含 8 行和 5 列的数据框。我只想打印最后 3 行。
我最初是这样写的:
last_3 <- my_df[ nrow(my_df) - 2 : nrow(my_df),]
last_3
这打印了从第 6 行到第 1 行的前 6 行(即按降序排列)
然后我做了这个并且它按预期工作(即行号 6,7 和 8)
last_3 <- my_df[( nrow( my_df) - 2) : nrow(my_df),]
last_3
谁能解释一下括号带来了什么变化?
第一种情况的输出是如何生成的。
这可以通过观察冒号 :
运算符比减号 -
运算符具有 更高 优先级来解释。这是一个向您展示发生了什么的示例,假设您的数据框 my_df
有 4 行:
my_df <- data.frame(v1=c(1,2,3,4), v2=c(1,2,3,4), v3=c(1,2,3,4))
nrow(my_df) - 2 : nrow(my_df)
4 - (2 : 4)
4 - [2, 3, 4]
[2, 1, 0]
换句话说,您实际上是在向序列 2:4
中添加一个数字。当你用括号括起索引时,你得到了你真正想要的行为:
(nrow(my_df) - 2) : nrow(my_df)
(4 - 2) : 4
2 : 4
[2, 3, 4]
我正在处理一个包含 8 行和 5 列的数据框。我只想打印最后 3 行。
我最初是这样写的:
last_3 <- my_df[ nrow(my_df) - 2 : nrow(my_df),]
last_3
这打印了从第 6 行到第 1 行的前 6 行(即按降序排列)
然后我做了这个并且它按预期工作(即行号 6,7 和 8)
last_3 <- my_df[( nrow( my_df) - 2) : nrow(my_df),]
last_3
谁能解释一下括号带来了什么变化? 第一种情况的输出是如何生成的。
这可以通过观察冒号 :
运算符比减号 -
运算符具有 更高 优先级来解释。这是一个向您展示发生了什么的示例,假设您的数据框 my_df
有 4 行:
my_df <- data.frame(v1=c(1,2,3,4), v2=c(1,2,3,4), v3=c(1,2,3,4))
nrow(my_df) - 2 : nrow(my_df)
4 - (2 : 4)
4 - [2, 3, 4]
[2, 1, 0]
换句话说,您实际上是在向序列 2:4
中添加一个数字。当你用括号括起索引时,你得到了你真正想要的行为:
(nrow(my_df) - 2) : nrow(my_df)
(4 - 2) : 4
2 : 4
[2, 3, 4]