如何从Python角度迭代R中的变量?

时间:2011-07-27 09:53:23

标签: r variables loops

假设我在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等价物?

2 个答案:

答案 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。)