【发布时间】:2017-05-24 20:41:40
【问题描述】:
我使用的数据看起来如何(它是一个 SNP 数据):
AA CC CA GG
GA CA CC GG
GG CCCC CAA GG
CA GG CC GC
我希望它在案例 2 之后变成怎样(由于第 2 列有多个字符,第 3 行被删除,所有列都被分成 2)
A A C C C A G G
G A C A C C G G
C A G G C C G C
案例 1
我现在用的是什么
mydata <- mydata[which(!nchar(as.character(mydata[,5]))>2),]
mydata <- mydata[which(!nchar(as.character(mydata[,6]))>2),]
mydata <- mydata[which(!nchar(as.character(mydata[,7]))>2),]
我希望它是
mydata <- mydata[which(!nchar(as.character(mydata[,5:7]))>2),]
问题在于该函数正在按 5:7 计算所有列并删除每一行。我想要相同的,但对每一列都这样做,而不是一起做。
案例2
我的代码
这使用库
library(dplyr)
library(splitstackshape)
run for each column 拆分第 6 列的单元格
data2$V6 = as.character(data2$V6)
data2 <- cSplit(data.frame(data2 %>% rowwise() %>%
mutate(V6 = V6, V6n = paste(unlist(strsplit(V6, "")),
collapse = ','))), "V6n", ",")
data2$V5 <- NULL
我对所有列都做同样的事情 问题我想为所有列做 潜在的解决方案: 不同类型的循环,但我无法使其工作。 任何帮助将不胜感激
【问题讨论】:
-
您应该在您的问题中添加数据:stackoverflow.com/questions/5963269/…;至少对于第二种情况,预期的输出也会很好。
-
注意到了。我将添加文件外观示例
标签: r dplyr splitstackshape