我正在研究一个非检测数据框,用'<'编码.有时在'<'之后有一个空格,有时不是例如'<2'或'<2'.我想删除每一个空间.
例:
data <- data.frame(name = rep(letters[1:3], each = 3), var1 = rep('< 2', 9), var2 = rep('<3', 9))
name var1 var2
1 a < 2 <3
2 b < 2 <3
3 c < 2 <3
Run Code Online (Sandbox Code Playgroud)
这是我必须要做的:
我可以提取所有值并创建新字符串,但我不能将它们放回数据框中.
index <- str_detect(unlist(data), '<')
index <- matrix(index, nrow = 3)
data[index]
#[1] "< 2" "< 2" "< 2" "<3" "<3" "<3"
replacements <- str_replace_all(data[index], "<[ ]+","<")
replacements
#[1] "<2" "<2" "<2" "<3" "<3" "<3"
data[index] <- replacements
#Error in `[<-.data.frame`(`*tmp*`, index, …
Run Code Online (Sandbox Code Playgroud)