r - 修改字符串后如何重置向量的因子?

标签 r string vector trim

修改字符串后如何重置向量的因子/水平?

library(stringr)
x <- c("  x1", "x1", "x2 ", " x2", "x1 ", "x2") # Whitespace left or right
as.character(x)
[1] "  x1" "x1"   "x2 "  " x2"  "x1 "  "x2" 
str_replace_all(x, fixed(" "), "")
[1] "x1" "x1" "x2" "x2" "x1" "x2"
factor(x)
[1]   x1 x1   x2    x2  x1   x2
Levels: x1  x2 x1 x1  x2 x2`

我想要这样的结果:

[1] x1 x1 x2 x2 x1 x2
Levels:   x1  x2

最佳答案

此操作不需要任何软件包。你可以做

factor(trimws(x))
# [1] x1 x1 x2 x2 x1 x2
# Levels: x1 x2

trimws() 用于修剪空白,并且在基本 R (>= 3.2.0) 中可用。

关于r - 修改字符串后如何重置向量的因子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36108426/

相关文章:

r - 如何将字符串向量转换为数据框或矩阵

c++ - 通过命令行使用 R 时出错

Java如何从字符串中提取 float 并单独显示

c++ - 将窄字符串转换为宽字符串

c++ - 扩展 vector 并调用 push_back 函数

r - 如何使用 data.table 和 lubridate 更快地按组计算(日期)排名?

r - 从因子字符串变量中提取唯一字符串

java - 检查字符串是否遵循某种格式?

c++ - 将 unique_ptr 作为对插入 vector 中

c++ - 将 pop_front 实现为 std::vector 的快速方法