这里有一个选项--用read.table
和unite
读取列‘number’所有列,不包括NA
个元素和na.rm = TRUE
个元素
library(tidyr)
library(dplyr)
read.table(text = Resultaat$Number, header = FALSE, fill = TRUE) %>%
unite(Number, everything(), na.rm = TRUE, sep = " ") %>%
bind_cols(Resultaat[1], .)
-输出
Cluster Number
1 W63 1020 1100
2 W50 1020 1240
关于gsub
,它可以是
gsub("\\s+NA|NA\\s+|NA$|^NA", "", Resultaat$Number)
[1] "1020 1100" "1020 1240"
或者也可以使用tidvyerse
种方法作为
library(dplyr)
library(tidyr)
library(stringr)
Resultaat %>%
separate_rows(Number) %>%
na_if("NA") %>%
drop_na() %>%
group_by(Cluster) %>%
summarise(Number = str_c(Number, collapse = " "))
-输出
# A tibble: 2 × 2
Cluster Number
<chr> <chr>
1 W50 1020 1240
2 W63 1020 1100
数据
Resultaat <- structure(list(Cluster = c("W63", "W50"),
Number = c("1020 NA NA NA 1100",
"1020 NA 1240 NA NA")), class = "数据.frame", row.names = c(NA,
-2L))