我有一个名为Resultaat的数据帧

Cluster Number
W63     1020 NA NA NA 1100
W50     1020 NA 1240 NA NA

我想go 掉所有的NA值,保留这些数字.这些列被定义为字符.

预期yields

Cluster Number
W63     1020 1100
W50     1020 1240 

我试过像这样的事情 gsub("^NA(?:\\s+NA)*\\b\\s*|\\s*\\bNA(?:\\s+NA)*$", "", Resultaat$Number)个 &amp;Resultaat <- Resultaat[!is.na(Resultaat)],但都不起作用

推荐答案

这里有一个选项--用read.tableunite读取列‘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))

R相关问答推荐

从cv.glmnet R包中查找培训SSE

在R中,如何在使用tibble::enFrame % % unlist转换后从收件箱中重组嵌套列表?

如何使用Cicerone指南了解R Shiny中传单 map 的元素?

使用rlang s arg_match判断函数输入列表

提取R中值和列名的所有可能组合

无法在我的情节中表现出显着的差异

以R中的正确顺序将日期时间字符列转换为posixct

基于不同组的列的相关性

将非重复序列高效转换为长格式

在R中使用Scale_y_Break后更改y轴标签

2个Rscript.exe可执行文件有什么区别?

为左表中的所有行使用值Fill滚动左连接

计算直线上点到参考点的总距离

将多个变量组合成宽格式

我如何使用tidyselect来传递一个符号数组,比如Pivot_Long?

使用shiny 中的所选要素行下拉菜单

如何使用FormC使简单算术运算得到的数字是正确的?

在ggplot2上从多个数据框创建复杂的自定义图形

数据集上的R循环和存储模型系数

R try Catch in the loop-跳过缺少的值并创建一个DF,显示跳过的内容