Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Python的角度迭代R中的变量?_R_Variables_Loops - Fatal编程技术网

如何从Python的角度迭代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将为您提供键和相应的值

假设在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
将为您提供键和相应的值。是否有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)))