С dplyr
и tidyr
вы можете сделать:
df %>%
fill(V1) %>%
group_by(V1) %>%
summarise(V2 = toString(V2))
V1 V2
<chr> <chr>
1 user1 123, 234, 345
2 user2 455, 678
3 user3 87, 987
4 user4 676, 456, 78, 356
Или:
df %>%
fill(V1) %>%
group_by(V1) %>%
summarise(V2 = paste(V2, collapse = ", "))
Пример данных:
df <- read.table(text = "user1 123
na 234
na 345
user2 455
na 678
user3 87
na 987
user4 676
na 456
na 78
na 356", header = FALSE,
na.strings = c("na"),
stringsAsFactors = FALSE)
Или иметь дело с na
после прочтения данных в:
df %>%
mutate(V1 = na_if(V1, "na")) %>%
fill(V1) %>%
group_by(V1) %>%
summarise(V2 = toString(V2))
Пример данных:
df <- read.table(text = "user1 123
na 234
na 345
user2 455
na 678
user3 87
na 987
user4 676
na 456
na 78
na 356", header = FALSE,
stringsAsFactors = FALSE)