我只是观察到一个非常奇怪的行为,在与 比较paste0
和paste
应用时我无法解释mutate
:
mtcars %>% group_by(cyl) %>% ungroup() %>% mutate(`newcol ss` = paste0(as.character(wt), as.character(drat), collapse=";"))
上面这段代码使用的输出paste0
如下:
mtcars %>% group_by(cyl) %>% ungroup() %>% mutate(`newcol ss` = paste(as.character(wt), as.character(drat)))
基本上 mutate 与paste
(逐行组合两列)效果很好,而paste0
将所有列和行组合在一个单元格中。
删除collapse
(并" "
在paste0
函数内部添加一个)以匹配使用时的结果paste
:
mtcars %>% group_by(cyl) %>% ungroup() %>% mutate(`newcol ss` = paste0(as.character(wt), " ", as.character(drat)))
您也可以使用以下方法产生奇怪的结果paste
:
mtcars %>% group_by(cyl) %>% ungroup() %>% mutate(`newcol ss` = paste(as.character(wt), as.character(drat), collapse = ";"))
> mtcars %>% group_by(cyl) %>% ungroup() %>% mutate(`newcol ss` = paste(as.character(wt), as.character(drat), collapse = ";"))
# A tibble: 32 x 13
mpg cyl disp hp drat wt qsec vs am gear carb ss `newcol ss`
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr>
1 21.0 6. 160. 110. 3.90 2.62 16.5 0. 1. 4. 4. "2.623.9 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
2 21.0 6. 160. 110. 3.90 2.88 17.0 0. 1. 4. 4. "2.8753.9 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
3 22.8 4. 108. 93. 3.85 2.32 18.6 1. 1. 4. 1. "2.323.85 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
4 21.4 6. 258. 110. 3.08 3.22 19.4 1. 0. 3. 1. "3.2153.08 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
5 18.7 8. 360. 175. 3.15 3.44 17.0 0. 0. 3. 2. "3.443.15 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
6 18.1 6. 225. 105. 2.76 3.46 20.2 1. 0. 3. 1. "3.462.76 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
7 14.3 8. 360. 245. 3.21 3.57 15.8 0. 0. 3. 4. "3.573.21 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
8 24.4 4. 147. 62. 3.69 3.19 20.0 1. 0. 4. 2. "3.193.69 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
9 22.8 4. 141. 95. 3.92 3.15 22.9 1. 0. 4. 2. "3.153.92 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
10 19.2 6. 168. 123. 3.92 3.44 18.3 1. 0. 4. 4. "3.443.92 " 2.62 3.9;2.875 3.9;2.32 3.85;3.215 3.08;3.44 3.15;3.46 2.76;3.57 3.~
# ... with 22 more rows
我个人会使用不太复杂的代码:
mtcars$ss <- paste0(mtcars$wt, " ", mtcars$drat)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句