转置 R 数据框并连接出现在多列中的值
Transpose R data frame and concatenate values that occur in multiple columns
我需要将 R 中的数据框从以下内容转换为:
id past present future
id1 A A B
id2 B C
id3 A C
id4 B B A
为此:
id A B C
id1 past, present future
id2 past future
id3 past present
id4 future past, present
我曾尝试使用 dcast,但我对 R 还很陌生,无法获得任何接近我需要的东西。我应该使用其他东西吗?
谢谢!
我们可以gather
把它变成'long'格式,按'id'、'val'、paste
和'key'元素分组,然后spread
到 'wide'
library(tidyverse)
gather(df1, key, val, -id) %>%
filter(val !="") %>%
group_by(id, val) %>%
summarise(key = toString(key)) %>%
spread(val, key, fill = "")
# A tibble: 4 x 4
# Groups: id [4]
# id A B C
# * <chr> <chr> <chr> <chr>
#1 id1 past, present future
#2 id2 past future
#3 id3 past present
#4 id4 future past, present
我需要将 R 中的数据框从以下内容转换为:
id past present future
id1 A A B
id2 B C
id3 A C
id4 B B A
为此:
id A B C
id1 past, present future
id2 past future
id3 past present
id4 future past, present
我曾尝试使用 dcast,但我对 R 还很陌生,无法获得任何接近我需要的东西。我应该使用其他东西吗?
谢谢!
我们可以gather
把它变成'long'格式,按'id'、'val'、paste
和'key'元素分组,然后spread
到 'wide'
library(tidyverse)
gather(df1, key, val, -id) %>%
filter(val !="") %>%
group_by(id, val) %>%
summarise(key = toString(key)) %>%
spread(val, key, fill = "")
# A tibble: 4 x 4
# Groups: id [4]
# id A B C
# * <chr> <chr> <chr> <chr>
#1 id1 past, present future
#2 id2 past future
#3 id3 past present
#4 id4 future past, present