首页 > 解决方案 > 从一列中分离百万和十亿数据

问题描述

我正在尝试使用以下代码将“M”和“B”与它们在2个不同列中的值分开。

我想要这样的输出:

level 1    level 2
M 3.2      B 3.6
M 4        B 2.8
           B 3.5

输入:

reve=c("M 3.2","B 3.6","B 2.8","B 3.5","M 4")
#class(reve)
data=data.frame(reve)

这是我尝试过的。

index=which(grepl("M ",data$reve)
data$reve=gsub("M ","",data$reve)
data$reve=gsub("B ","",data$reve)

data$reve=as.numeric(data$reve)

标签: r

解决方案


如果你有一个数据框,你可以使用 dplyr separate()

我给你一个例子:

library(dplyr)
df <- tibble(coupe = c("M 2.3", "M 4.5", "B 1"))
df %>% separate(coupe, c("MorB","Quant"), " ")

输出

#  MorB  Quant
#  <chr> <chr>
#1 M     2.3  
#2 M     4.5  
#3 B     1    

希望对你有帮助!

用于计算“M”行的数量:

 df %>% separate(YourColumn, c("MorB","Quant"), " ") %>% 
 filter(MorB == "M") %>% nrow() 

推荐阅读