添加包含列名称的新列

Luc*_*lho 4 r

我有这个df:

        A       B   C 
1       NA    100   NA
2      130     NA   NA
3       NA     NA   200
4      110     NA   NA
Run Code Online (Sandbox Code Playgroud)

我要去bind他们,删除它们,NA所以我得到一个单独的列与他们的价值观.

但我需要保留他们来自哪里的信息,所以我想添加一个新的列column_name,所以它会像这样:

      values  column_name 
1       130    A 
2       110    A
3       100    B
4       200    C
Run Code Online (Sandbox Code Playgroud)

有什么想法怎么做?

Sot*_*tos 7

这是stack来自基地R的工作,

s_df <- stack(df)
s_df[complete.cases(s_df),]
Run Code Online (Sandbox Code Playgroud)

这使,

   values ind
2     130   A
4     110   A
5     100   B
11    200   C
Run Code Online (Sandbox Code Playgroud)

编辑上面的单行版本(根据@ snoram的评论)

stack(df)[!is.na(df),]
Run Code Online (Sandbox Code Playgroud)