如何按名称在 R 函数中调用 data.frame
How to call a data.frame inside an R Function by name
我想编写一个对不同 data.frames 运行相同分析的函数。这是我的代码的一个简单版本:
set1 <- data.frame(x=c(1,2,4,6,2), y=c(4,6,3,56,4))
set2 <- data.frame(x=c(3,2,3,8,2), y=c(2,6,3,6,3))
mydata <- c("set1", "set2")
for (dataCount in 1:length(data)) {
lm(x~y, data=mydata)
}
如何在函数中按名称调用 data.frame?现在 "data" 显然只有 returns "mydata" 的名字作为一个字符。
有多种方法可以做到这一点。你的 "native" 方式是
mydata <- ls(pattern = "set")
for (dataCount in mydata) {
print(summary(lm(x~y, data=get(dataCount))))
}
或者您可以将您的 data.frames 整理成一个列表并进行处理。
mylist <- list(set1, set2)
lapply(mylist, FUN = function(yourdata) {
print(summary(lm(x ~ y, data = yourdata)))
})
我想编写一个对不同 data.frames 运行相同分析的函数。这是我的代码的一个简单版本:
set1 <- data.frame(x=c(1,2,4,6,2), y=c(4,6,3,56,4))
set2 <- data.frame(x=c(3,2,3,8,2), y=c(2,6,3,6,3))
mydata <- c("set1", "set2")
for (dataCount in 1:length(data)) {
lm(x~y, data=mydata)
}
如何在函数中按名称调用 data.frame?现在 "data" 显然只有 returns "mydata" 的名字作为一个字符。
有多种方法可以做到这一点。你的 "native" 方式是
mydata <- ls(pattern = "set")
for (dataCount in mydata) {
print(summary(lm(x~y, data=get(dataCount))))
}
或者您可以将您的 data.frames 整理成一个列表并进行处理。
mylist <- list(set1, set2)
lapply(mylist, FUN = function(yourdata) {
print(summary(lm(x ~ y, data = yourdata)))
})