目标:检索最后两个数据条目。(我知道尾函数或直接索引)
代码:
> tdata <- read.csv("hw1_data.csv")
> temp <- tdata[(nrow(tdata)-1):nrow(tdata), ]
> temp
Ozone Solar.R Wind Temp Month Day
152 18 131 8.0 76 9 29
153 20 223 11.5 68 9 30
> temp <- tdata[nrow(tdata)-1:nrow(tdata), ]
> temp
Ozone Solar.R Wind Temp Month Day
152 18 131 8.0 76 9 29
151 14 191 14.3 75 9 28
150 NA 145 13.2 77 9 27
149 30 193 6.9 70 9 26
148 14 20 16.6 63 9 25
147 7 49 10.3 69 9 24
.
.
.
在使用提取运算符获取子集时,我使用了nrows()函数来检索数据中的总行数并从中减去一行(比总行少一个)并使用序列运算符(:)序列直到nrows(数据),即总行数。
当我使用括号时,逻辑工作正常,但当我跳过括号时,输出是反向顺序中的总数据帧。
我可以发现优先规则正在发挥作用,但无法弄清楚确切的逻辑。在R新,所以任何正式的解释都是有价值的。
答案 0 :(得分:2)
columns.Bound(p => p.Status).Width(60).Filterable(ftb => ftb.Multi(true));
所以你运行的第一行是:
nrow(tdata) = 153
执行为temp <- tdata[(nrow(tdata)-1):nrow(tdata),]
第二行:
tdata[152:153,]
执行为temp <- tdata[nrow(tdata)-1:nrow(tdata),]
所以它返回以下内容:
tdata[153-1:153,]
答案 1 :(得分:2)
正如在帖子中正确怀疑的那样,观察到的行为实际上是运算符优先级的问题。
可以通过键入
获取R中的运算符语法和优先级规则的完整列表help(Syntax)
在控制台中。
在这种情况下,R程序员有时会引用一个众所周知且引人注目的引用来鼓励使用括号:
library(fortunes)
fortune(138)