我有这样的数据框架,我需要删除项列中小于4位的值,
department item
xyz009 c("1","676547","2","434567","3","567369","4","987654","6","54546676732")输出
department item
xyz009 676547,434567,567369,987654,54546676732谢谢你的帮助
发布于 2020-02-17 12:04:39
使用基本R,您可以使用unlist,和:
xyz009<-c("1","676547","2","434567","3","567369","4","987654","6","54546676732")
unlist(lapply(xyz009,function(x) x[nchar(x)>3]))结果是:
[1] "676547" "434567" "567369" "987654" "54546676732"发布于 2020-02-17 11:57:33
也许你可以试试nchar+subset
> subset(v,nchar(v)>4)
[1] "676547" "434567" "567369"
[4] "987654" "54546676732"数据
v <- c("1","676547","2","434567","3","567369","4","987654","6","54546676732")发布于 2020-02-17 11:57:03
1.创建一个minimal reproducible example
xyz009 <- c("1","676547","2","434567","3","567369","4","987654","6","54546676732")2.使用R基的建议解决办法:
向量xyz009为character型
typeof(xyz009)
[1] "character"为了对它进行数学运算(即使用>),我们必须使用as.numeric将它转换为数字。
num_xyz <- as.numeric(xyz009)现在,我们可以使用索引“筛选”值,其中表达式的计算结果为TRUE。
test_result <- num_xyz > 9999向量test_result由布尔人组成。
test_result
[1] FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE我们可以使用这些布尔值作为“索引”(R只保留索引为TRUE的值):
num_xyz[test_result]这将返回:
[1] 676547 434567 567369 987654 54546676732https://stackoverflow.com/questions/60261720
复制相似问题