R 连接列中行的值
我有一个看起来像这样的TIBLE,列的名称是:R 连接列中行的值,r,dplyr,R,Dplyr,我有一个看起来像这样的TIBLE,列的名称是: A B C D <char> <char> <char> <char> Aa Bb C D Aa Bb C D A B C D Aa Bb C D Aa Bb C D 我想得到这个: A B C D <char> <char> <char&
A B C D
<char> <char> <char> <char>
Aa Bb C D
Aa Bb C D
A B C D
Aa Bb C D
Aa Bb C D
我想得到这个:
A B C D
<char> <char> <char> <char>
AaAa BbBb C D
A B C D
AaAa BBBBC D
因此,如果所有行中的字符串都完全相同,我只想保留这一个值。如果它们不同,请将它们连接到一个字符串中。我不确定您为什么想要这种行为,但您可以通过以下代码实现:
x=read.table(header = T, text="
A B C D
Aa Bb C D
Aa Bb C D")
x %>%
group_by(C, D) %>%
summarise_at(c("A","B"), ~paste(.x, collapse=""))
基本上,按“固定”列分组,然后使用粘贴在A和B处折叠
这是为了获得预期的输出。如果我引用你的文字,它看起来更像这样:
x=read.table(header = T, text="
A B C D
Aa Ba C D
Aa Ba C D
Aa Bb C D")
x %>%
group_by(C, D) %>%
summarise_at(c("A","B"), ~{
if(length(levels(factor(.x)))==1) .x[1] else paste(unique(.x), collapse="")
})
如果列中只有一个值,则输出该值,否则输出所有唯一值的串联
#一个tible:1 x 4
#组别:C[1]
C D A B
1 C D Aa BaBb
我不知道您为什么想要这种行为,但您可以通过以下代码实现:
x=read.table(header = T, text="
A B C D
Aa Bb C D
Aa Bb C D")
x %>%
group_by(C, D) %>%
summarise_at(c("A","B"), ~paste(.x, collapse=""))
基本上,按“固定”列分组,然后使用粘贴在A和B处折叠
这是为了获得预期的输出。如果我引用你的文字,它看起来更像这样:
x=read.table(header = T, text="
A B C D
Aa Ba C D
Aa Ba C D
Aa Bb C D")
x %>%
group_by(C, D) %>%
summarise_at(c("A","B"), ~{
if(length(levels(factor(.x)))==1) .x[1] else paste(unique(.x), collapse="")
})
如果列中只有一个值,则输出该值,否则输出所有唯一值的串联
#一个tible:1 x 4
#组别:C[1]
C D A B
1 C D Aa BaBb
是不是,你在找这个
library(dplyr)
df <- tribble(
~A, ~B, ~C, ~D,
"Aa", "Bb", "C", "D",
"Aa", "Bb", "C", "D",
)
df %>% # take the dataframe
group_by_all() %>% # group it by all columns (i.e. unique combinations)
slice(1) # and get the first row in each group
A B C D
<chr> <chr> <chr> <chr>
1 Aa Bb C D
库(dplyr)
df%#获取数据帧
按所有列分组(即唯一组合)
切片(1)#并获得每组的第一行
A、B、C、D
1 Aa Bb C D
可能是您在找这个吗
library(dplyr)
df <- tribble(
~A, ~B, ~C, ~D,
"Aa", "Bb", "C", "D",
"Aa", "Bb", "C", "D",
)
df %>% # take the dataframe
group_by_all() %>% # group it by all columns (i.e. unique combinations)
slice(1) # and get the first row in each group
A B C D
<chr> <chr> <chr> <chr>
1 Aa Bb C D
库(dplyr)
df%#获取数据帧
按所有列分组(即唯一组合)
切片(1)#并获得每组的第一行
A、B、C、D
1 Aa Bb C D
第2行和第3行相同()。即使是艰难的第1行也与之不同。我想你可能想修改你想要的输出。我说的第一行是指列的名称——很抱歉误导了你!第2行和第3行相同()。即使是艰难的第1行也与之不同。我想你可能想修改你想要的输出。我说的第一行是指列的名称——很抱歉误导了你!