r - separate_rows 在结果周围生成引号

separate_rows 在操作后围绕结果值生成引号 (")。这是正常行为吗?如何在同一操作中防止它发生而不在之后明确删除它们手术?

df <- data.frame(a = c("c_1", "c_2", "c_3", "c_4", "c_5"), 
                 b = c("a (+1)", "b (+2)", "a (+2), c (+5)", "e (+2)", "b (+2), e (+5)")) 

    a              b
1 c_1         a (+1)
2 c_2         b (+2)
3 c_3 a (+2), c (+5)
4 c_4         e (+2)
5 c_5 b (+2), e (+5)

df %>%  tidyr::separate_rows(b, sep = ",", convert = TRUE)
# # A tibble: 7 x 2
#     a     b        
#   <chr> <chr>    
# 1 c_1   "a (+1)" 
# 2 c_2   "b (+2)" 
# 3 c_3   "a (+2)" 
# 4 c_3   " c (+5)"
# 5 c_4   "e (+2)" 
# 6 c_5   "b (+2)" 
# 7 c_5   " e (+5)"

问题是not about将一行分成多行。它已经在我的尝试中显示并且代码可以实现它。

最佳答案

那些引号并不像您想象的那样存在,这正是 tidyverse 的打印方式 - 试图表明存在空白。见下文:

library(tidyverse)

x1 <- df %>% separate_rows(b, sep = ",", convert = TRUE)
x2 <- as.data.frame(x1)

x1
# # A tibble: 7 x 2
#   a     b        
#   <chr> <chr>    
# 1 c_1   "a (+1)" 
# 2 c_2   "b (+2)" 
# 3 c_3   "a (+2)" 
# 4 c_3   " c (+5)"
# 5 c_4   "e (+2)" 
# 6 c_5   "b (+2)" 
# 7 c_5   " e (+5)"

x2
#     a       b
# 1 c_1  a (+1)
# 2 c_2  b (+2)
# 3 c_3  a (+2)
# 4 c_3  c (+5)
# 5 c_4  e (+2)
# 6 c_5  b (+2)
# 7 c_5  e (+5)

identical(x1$b, x2$b)
# [1] TRUE

https://stackoverflow.com/questions/63775925/

相关文章:

python - 如何在 Python 中订阅 NATS 主题并继续接收消息?

c - main的地址是什么?

java - 阵列旋转 TLE(超出时间限制)

python - Python 中的日期字符串格式化

javascript - 悬停时高效的 JS 事件监听器

python - 从数据框中删除列中以 "@"开头的单词

angular - 使用@input 对 Angular 组件进行单元测试

scala - 如何在不分配给 val 的情况下使用隐式调用返回的函数

python - 如何将带有元组键的 python 字典转换为 pandas 多索引数据框?

html - 轮播滑动动画不适用于 Bootstrap 4.5.2