如何拆分数据框/矩阵的多列并将结果保存为数据框?每个单元格有两个字符,但我只希望每个单元格有一个字符,其他字符对到下一个。
我尝试了这些方法,但分割完成后仍无法从结果中获取结果 Dataframe
geno_splitted_ls <- apply(mGenotype, 2, strsplit, split="") #split each column
do.call("as.data.frame", geno_splitted_ls) #collect results as dataframe fails
lapply(geno_splitted_ls, data.frame) #collect results as dataframe fails
数据如下所示
> dput(mGenotype)
structure(c("gg", "gg", "gg", "gg", "gt", "gg", "gg", "tg", "gg",
"gg", "aa", "aa", "ac", "aa", "ca", "aa", "aa", "aa", "aa", "ac",
"tt", "tt", "ct", "cc", "tt", "tt", "ct", "tc", "tc", "tt", "aa",
"aa", "ag", "aa", "ga", "ga", "aa", "aa", "aa", "ag", "aa", "aa",
"aa", "aa", "aa", "aa", "aa", "aa", "aa", "aa", "tt", "tt", "tt",
"tt", "tt", "gt", "tt", "tt", "tt", "tt"), dim = c(10L, 6L), dimnames = list(
NULL, c("genotype1", "genotype2", "genotype3", "genotype4",
"genotype5", "genotype6")))
4条答案
按热度按时间qxsslcnc1#
下面是一个基于tidyverse的解决方案:
创建于2023年3月19日,使用reprex v2.0.2
cfh9epnr2#
这也许是@jared_mamrot上面回答的一个不太简洁的版本...
但如果你像我一样,需要先一步一步地看事情,可能会有帮助。
lf5gs5x23#
您可以按
MARGIN=1
、unlist
元素和t
转换进行拆分。如果需要 Dataframe ,只需通过管道传输到另一个
|> as.data.frame()
。r8xiu3jd4#
在
base R
中使用read.fwf