如何将数据帧作为参数传递给函数?

时间:2020-08-07 07:14:40

标签: r function

T12是一个具有22列的数据帧(但我只希望第2列到第8列)和大约一百万个条目。 一些条目在第一栏中不适用。每当第一列中没有NA时,完整案例会删除完整行。一切正常。

我有更多的数据帧,我不想为每个数据帧再次编写整个代码。

我想拥有类似此功能的东西,并希望将其设置为x T12,T13,T14,T15等。

你可以帮我吗?

split <- function (x){
  x <- x[,2:8]
  x <- x[complete.cases(x[ ,1]),]
  }

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中的默认函数,因此最好给函数起一个不同的名字。