假设我在R中有这个变量data
:
data.orange.lm = lm(...)
data.orange.avg = mean(...)
data.orange.sd = sd(...)
data.pear.lm = lm(...)
data.pear.sd = sd(...)
...
data.plum.sd = sd(...)
data.plum.summary = summary(lm(...))
如何以编程方式迭代data
?在Python中,iteritems
dictionary
会为您提供密钥和相应的值。是否有R等价物?
答案 0 :(得分:1)
将所有内容存储在嵌套列表中:
data[["orange"]][["lm"]] = lm(...)
data[["orange"]][["avg"]] = mean(...)
data[["orange"]][["sd"]] = sd(...)
data[["pear"]][["lm"]] = lm(...)
data[["pear"]][["sd"]] = sd(...)
然后使用apply
系列命令。
答案 1 :(得分:0)
对于有点像这样的数据:
data <- data.frame(
fruit = rep(c("orange", "pear", "plum"), each = 10),
value = rnorm(30)
)
您可以使用tapply
按水果获取统计信息,sapply
循环使用功能。
fns <- c("mean", "sd")
stats <- sapply(fns, function(f) with(data, tapply(value, fruit, f)))
(如果您的某些功能未返回单个数字,请使用lapply
而不是sapply
。)