gpt4 book ai didi

r - 使用 R 合并重复的列

转载 作者:行者123 更新时间:2023-12-05 01:19:13 24 4
gpt4 key购买 nike

我有一个包含 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

关于r - 使用 R 合并重复的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40539313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com