我正在尝试拆分列。我的数据框(menuD)就像
Column1
1|3|4|5
4|5|6|7
我想在第1列中拆分数字,所以我这样做了。
menuD <- data.frame (do.call('rbind', strsplit(as.character(myCmenu$myFile.menudata), '|', fixed = TRUE)))
我得到了预期的结果,就像这样
col1 | col2 | col3 | col4
1 | 3 | 4 | 5
4 | 5 | 6 | 7
但是我从R
收到了这条警告信息> Warning message:
In rbind(c("", "164200", "", "167", "108", "112", "116", "120"), :
number of columns of result is not a multiple of vector length (arg 1)
我想知道,这对我的数据有影响吗?所有数据是否正确分开?
答案 0 :(得分:5)
根据提供的示例,cSplit
library(splitstackshape)
cSplit(menuD, "Column1", "|")
# Column1_1 Column1_2 Column1_3 Column1_4
#1: 1 3 4 5
#2: 4 5 6 7
separate
来自tidyr
library(tidyr)
separate(menuD, Column1, into = paste0("col", 1:4))
或read.table/read.csv
可以使用。
read.table(text=menuD$Column1, sep="|", fill=TRUE, header=FALSE)
但是,OP的帖子中的警告表明&#34; Column1&#34; |
的数量较少。在这种情况下,cSplit
或最后一个选项应该有效。