我有一个包含 4 列的表,其中第 1,3 列和第 2,4 列代表相同的变量。
Codes Description Codes Description
xxxxx describes xxxxx zzzzz describes zzzzz
yyyyy describes yyyyy 12345 describes 12345
我想将表格转换为
Codes Description
xxxxx describes xxxxx
zzzzz describes zzzzz
yyyyy describes yyyyy
12345 describes 12345
现在我正在这样做:
df_temp <- df[,3:4]
df <- df[, - c(3, 4)]
df <- rbind(df, df_temp)
但我必须对几个表执行此操作,而且我的方法似乎效率不高。是否可以使用 %>% 或编写函数来做到这一点?
基于列表的方法purrr
:
library(purrr)
df %>% map(as.character) %>% # convert factors to character, leave as list
split(names(.)) %>% # split list by column names
map_df(flatten_chr) # unlist each element and reassemble to data.frame
## # A tibble: 4 × 2
## Codes Description
## <chr> <chr>
## 1 xxxxx describes xxxxx
## 2 yyyyy describes yyyyy
## 3 zzzzz describes zzzzz
## 4 12345 describes 12345
或以 R 为基数,
as.data.frame(lapply(split(lapply(df,
as.character),
names(df)),
unlist))
## Codes Description
## 1 xxxxx describes xxxxx
## 2 yyyyy describes yyyyy
## 3 zzzzz describes zzzzz
## 4 12345 describes 12345
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)