T12是一个具有22列的数据帧(但我只希望第2列到第8列)和大约一百万个条目。 一些条目在第一栏中不适用。每当第一列中没有NA时,完整案例会删除完整行。一切正常。
我有更多的数据帧,我不想为每个数据帧再次编写整个代码。
我想拥有类似此功能的东西,并希望将其设置为x T12,T13,T14,T15等。
你可以帮我吗?
split <- function (x){
x <- x[,2:8]
x <- x[complete.cases(x[ ,1]),]
}
答案 0 :(得分:2)
如果您有名为"T12"
,"T13"
等的数据帧,则可以使用模式"T"
后跟一个数字,以使用{{ 1}}。
使用ls
可以从命名列表中的那些字符向量获取数据帧。
然后您可以使用mget
在每个列表上应用lapply
功能。
split
new_data <- lapply(mget(ls(pattern = 'T\\d+')), split)
包含数据帧列表。如果您希望这些更改反映在原始数据框中,请使用new_data
。
list2env
PS-list2env(new_data, .GlobalEnv)
是R中的默认函数,因此最好给函数起一个不同的名字。