首页 > 解决方案 > 使用 dplyR 替换 R 中 data.frame 的所有列中的特殊字符串

问题描述

我的数据框看起来像这样

value <- c(0,0.1,0.2,0.4,0,"0.05,",0.05,0.5,0.20,0.40,0.50,0.60)
time <- c(1,1,"1,",1,2,2,2,2,3,3,3,3)
ID <- c("1,","2,","3,",4,1,2,3,4,1,2,3,4)

test <- data.frame(value, time, ID)
test

   value time ID
1      0    1 1,
2    0.1    1 2,
3    0.2   1, 3,
4    0.4    1  4
5      0    2  1
6  0.05,    2  2
7   0.05    2  3
8    0.5    2  4
9    0.2    3  1
10   0.4    3  2
11   0.5    3  3
12   0.6    3  4

我想用“”替换所有列中的“,”,但我仍然收到错误 UseMethod("tbl_vars") 中的错误:没有适用于 'tbl_vars' 的方法应用于类“字符”的对象我想要我的数据看起来像这样

  value time ID
1   0.00    1  1
2   0.10    1  2
3   0.20    1  3
4   0.40    1  4
5   0.00    2  1
6   0.05    2  2
7   0.05    2  3
8   0.50    2  4
9   0.20    3  1
10  0.40    3  2
11  0.50    3  3
12  0.60    3  4

编辑

test %>% 
mutate_all(~gsub(",","",.))

标签: rdplyrtidyversetidyr

解决方案


在这种情况下,最简单的可能是parse_numberreadr包中使用,例如:

apply(test, 2, readr::parse_number)

或用dplyr行话:

test %>% mutate_all(readr::parse_number)

推荐阅读