![](/img/trans.png)
[英]How can i create a new column in R that will return specific values according to the initial values in R using dplyr?
[英]How can I remove the values of a column of a data set that contain specific number of digits in R using dplyr?
我有一个看起来像这样的数据集:
vec = c(989, 987, 145, 315, 8449, 9999999999000)
char = c("a","b","c","d","e","f")
df2 = tibble(vec,char);df2
# A tibble: 6 × 2
vec char
<dbl> <chr>
1 989 a
2 987 b
3 145 c
4 315 d
5 8449 e
6 9999999999000 f
我想从包含多于或等于 5 位数字的列向量中删除值。 理想情况下我想看起来像这样:
1 989 a
2 987 b
3 145 c
4 315 d
5 8449 e
我如何使用 dplyr 在 R 中执行此操作?
有什么帮助吗?
在base R
中使用nchar
subset(df2, nchar(vec) <6)
或filter
library(dplyr)
filter(df2, nchar(vec) <6)
# A tibble: 5 × 2
vec char
<dbl> <chr>
1 989 a
2 987 b
3 145 c
4 315 d
5 8449 e
如果有小数,则转换为integer并计数
filter(df2, nchar(as.integer(vec)) < 6)
您也可以尝试:
library(tidyverse)
df2 %>% filter(!str_count(vec, '\\d{5,}') == 1)
# A tibble: 5 × 2
vec char
<dbl> <chr>
1 989 a
2 987 b
3 145 c
4 315 d
5 8449 e
请检查
tibble(vec,char) %>% filter(nchar(vec)<=4)
创建于 2023-01-25,使用reprex v2.0.2
# A tibble: 5 × 2
vec char
<dbl> <chr>
1 989 a
2 987 b
3 145 c
4 315 d
5 8449 e
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.