【发布时间】:2015-08-14 09:03:31
【问题描述】:
我正在尝试收集按排名排序的数据集中的 n 个最小值。
这是我的代码:
testscript <- function(num) {
df <- data.frame(State = paste0("State",sort(rep(1:2,10))),
City = rep(paste0("city",rep(1:10,2))),
Value = runif(n=20))
vec <- NULL
df$Rank <- ave(df$Value, df$State, FUN=rank)
for (i in 1:num) {
vec[i] <- df[df$Rank==[i],]
}
}
参数 num 是我要收集的最小值的数量。
当我运行该函数时,我收到以下错误:
Error: unexpected '[' in:
"for (i in 1:num) {
vec[i] <- df[df$Rank==["
【问题讨论】:
-
您的函数没有返回值。您能否包含显示您打算如何使用它的代码?
-
testscript(3) 应该产生:State City Value Rank 3 State1 city3 0.05694883 1 13 State2 city3 0.08323056 1 5 State1 city5 0.3006471 2 16 State2 city6 0.1483099 2 1 State1 city1 0.3988151 3 17 State2 /跨度>
标签: r for-loop indexing minimum