1
我有名字創建了以下動態列表cluster_1,cluster_2 ......像這樣內的動態創建列表:我已經削減[R調用for循環
observedUserShifts <- vector("list")
cut <- 2
for (i in 1:cut) {
assign(paste('cluster_', i, sep=''), subset(sortedTestRTUser, cluster==i))
observedUserShifts[[i]] <- mean(cluster_1$shift_length_avg)
}
通知= 2 SO 2個列表創建動態地使用由於「分配」功能而產生的名稱:cluster_1和cluster_2
我想在for循環中調用上述每個列表。請注意,我在for循環中有硬編碼的cluster_1(for循環內的第二行)。我如何改變這個,以便它不被硬編碼?
我想:
> observedUserShifts[[i]] <- mean((paste('cluster_','k',sep='')$shift_length_avg)
+)
Error in paste("cluster_", "k", sep = "")$shift_length_avg :
$ operator is invalid for atomic vectors
由於多種原因,這不是找到每個羣集內平均值的好方法。相反,使用aggregate,data.table或dplyr,如[在此問題中所述](http://stackoverflow.com/questions/21982987/mean-per-group-in-a-data-frame) –
例如,你可以簡單地做'library(dplyr); sortedTestRTUser%>%group_by(cluster)%>%summarize(observedUserShifts = mean(shift_length_avg))' –