R 如何将数据帧作为参数传递给函数?
T12是一个包含22列(但我只希望第2列到第8列)和大约一百万个条目的数据帧。 第一列中的一些条目不适用。每当第一列中有NA时,complete cases将删除整行。一切正常 我有更多的数据帧,我不想为每个数据帧再次编写整个代码 我希望有类似于这个函数的东西,并希望把它放在x,T12,T13,T14,T15等等 你能帮我吗R 如何将数据帧作为参数传递给函数?,r,function,R,Function,T12是一个包含22列(但我只希望第2列到第8列)和大约一百万个条目的数据帧。 第一列中的一些条目不适用。每当第一列中有NA时,complete cases将删除整行。一切正常 我有更多的数据帧,我不想为每个数据帧再次编写整个代码 我希望有类似于这个函数的东西,并希望把它放在x,T12,T13,T14,T15等等 你能帮我吗 split <- function (x){ x <- x[,2:8] x <- x[complete.cases(x[ ,1]),] }
split <- function (x){
x <- x[,2:8]
x <- x[complete.cases(x[ ,1]),]
}
split
- 如果有名为
“T12”
、“T13”
等的数据帧,则可以使用模式“T”
,后跟数字,使用ls
捕获字符向量中的所有此类数据帧
- 使用
mget
可以从命名列表中的字符向量中获取数据帧
- 然后可以使用
lappy
在每个列表上应用split
函数
PS-split
是R中的默认函数,因此最好为函数指定不同的名称。创建这些数据帧时,应将其放入列表中。如果您不再需要mget
或类似的方法,那么代码将更加简单和干净。像这样使用list2env
不是其创建者想要的用例。这也从来没有必要。
new_data <- lapply(mget(ls(pattern = 'T\\d+')), split)
list2env(new_data, .GlobalEnv)