小编btt*_*mio的帖子

提取函数内的数据框名称以创建新列

我正在尝试在函数内使用数据框的名称创建一个新列。

这是我的代码:

df1 <- data.frame(var1 = seq(1:10))
df2 <- data.frame(var2 = seq(1:10))
df3 <- data.frame(var3 = seq(1:10))

df_LIST <- tibble::lst(df1, df2, df3)
df_FUN <- lapply(
  df_LIST, 
  function(x)
  {
    mutate(x, 
           df_NAME = deparse(substitute(x))
    ) %>%
      select("df_NAME") %>%
      na.omit()
  }  
)

list2env(df_FUN, .GlobalEnv)
Run Code Online (Sandbox Code Playgroud)

结果:

> df1
   df_NAME
1        x
2        x
3        x
4        x
5        x
6        x
7        x
8        x
9        x
10       x
Run Code Online (Sandbox Code Playgroud)

预期结果:

> df1
   df_NAME
1      df1
2      df1
3      df1
4      df1
5      df1
6 …
Run Code Online (Sandbox Code Playgroud)

r list dataframe dplyr

6
推荐指数
1
解决办法
745
查看次数

标签 统计

dataframe ×1

dplyr ×1

list ×1

r ×1