如何从Python的角度迭代R中的变量?
假设在R中有一个变量,如何从Python的角度迭代R中的变量?,r,variables,loops,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(...)) 如何以编程方式迭代数据?在Python中,字典的iteritems将为您提供键和相应的值
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(...))
如何以编程方式迭代
数据
?在Python中,字典的iteritems
将为您提供键和相应的值。是否有R等价物?将所有内容存储在嵌套列表中:
data[["orange"]][["lm"]] = lm(...)
data[["orange"]][["avg"]] = mean(...)
data[["orange"]][["sd"]] = sd(...)
data[["pear"]][["lm"]] = lm(...)
data[["pear"]][["sd"]] = sd(...)
然后使用
apply
命令系列。对于有点像这样的数据:
data <- data.frame(
fruit = rep(c("orange", "pear", "plum"), each = 10),
value = rnorm(30)
)
(如果某些函数不返回单个数字,则使用
lappy
而不是sapply
)立即阅读apply
内容。因此,我应该将所有操作(即输出到图表、文件、表格等)包装到函数中,然后将项目(即lm、mean、sd等)应用到函数中?@c00kiemonester,您希望将对象放在一个列表中,您可以使用apply family访问该列表。此函数族的参数之一是(自定义)函数。您可以用读取lm、avg、sd的方式编写此自定义函数。。。实际上,一个lappy
函数将遍历orange和pear,在你的函数中,你可以使用lm、avg和sd来做任何事情。@c00kiemonster:这就是想法。罗曼给了你更多的细节。基本上,您正在应用的函数将访问一个对象(称为x),该对象是一个长度为三的列表,名称为“lm”、“avg”和“sd”。然后,您可以使用该列表执行任何您喜欢的操作(包括运行另一个应用程序!)。为了便于使用,我倾向于使用sapply,但如果您不小心的话,简化默认值可能会带来麻烦。
fns <- c("mean", "sd")
stats <- sapply(fns, function(f) with(data, tapply(value, fruit, f)))