R语言如何重排dataframe指定列的字符串分段顺序?
R dataframe V4列字符串片段重排问题解决
你原来的代码存在两处错误,无法实现全列批量处理:
- 拆分字符错误:V4列的片段分隔符是分号
;,不是你写的逗号,,错误的分隔符会导致拆分后每行只有1个片段,后续重排逻辑完全失效 - 列表操作逻辑错误:
strsplit()返回的是和V4行数等长的列表,[[ ]]只能取出单个行的拆分结果,不管填什么行号/列名都无法作用到全列
正确实现代码
# 按分号拆分V4列,得到对应每行片段的列表 split_v4 <- strsplit(df$V4, ";") # 遍历每行拆分结果,交换3、4位片段后拼回完整字符串 df$V4 <- sapply(split_v4, function(x) { paste(x[c(1,2,4,3,5,6,7,8)], collapse = ";") })
运行上述代码即可得到你预期的id在strand之前的效果。
内容的提问来源于stack exchange,提问作者Myke
相关产品推荐
相关产品推荐

