【发布时间】:2016-05-06 15:22:49
【问题描述】:
我正在更改我编写的程序。最初,该程序旨在分析具有恒定 6 个元素的“nS”向量的数据。现在我想让程序处理具有从 1 到 100 的动态元素的 nS 向量。
如何重新设计“# other need states”下的部分(最好使用应用函数而不是循环)?
# calculate dominant package size for each needstate
package <- as.factor(levels(df$Bagtype)) # name vector with package names
qoo <- data.frame(lapply(package, function(x) sum(df$Nettoerloes[df$NeedState == nS[1] & df$Bagtype == package[x]], na.rm = T))) # first need state + create data frame
names(qoo) <- package # name columns
# other need states
qoo[2,] <- lapply(package, function(x) sum(df$Nettoerloes[df$NeedState == nS[2] & df$Bagtype == package[x]], na.rm = T))
qoo[3,] <- lapply(package, function(x) sum(df$Nettoerloes[df$NeedState == nS[3] & df$Bagtype == package[x]], na.rm = T))
qoo[4,] <- lapply(package, function(x) sum(df$Nettoerloes[df$NeedState == nS[4] & df$Bagtype == package[x]], na.rm = T))
qoo[5,] <- lapply(package, function(x) sum(df$Nettoerloes[df$NeedState == nS[5] & df$Bagtype == package[x]], na.rm = T))
qoo[6,] <- lapply(package, function(x) sum(df$Nettoerloes[df$NeedState == nS[6] & df$Bagtype == package[x]], na.rm = T))
row.names(qoo) <- nS #name rows
【问题讨论】:
标签: r loops apply lapply sapply