Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对多个列使用colsplit函数_R - Fatal编程技术网

R 对多个列使用colsplit函数

R 对多个列使用colsplit函数,r,R,我有一个矩阵500行,1000列。每个列之间有4个元素逗号,我需要删除逗号 数据是这样的 1 2 3 4 ... 1000 1 12,1,20 14,15,12 10,10,20 1,0,10 ... 1,5,3 2 12,1,20 14,15,12 10,10,20 1,0,10 ... 1,5,3 3 12,1,20 14,15,12 10,10,20 1,0,1

我有一个矩阵500行,1000列。每个列之间有4个元素逗号,我需要删除逗号

数据是这样的

     1            2          3          4    ...  1000
1  12,1,20   14,15,12    10,10,20    1,0,10 ... 1,5,3
2  12,1,20   14,15,12    10,10,20    1,0,10 ... 1,5,3
3  12,1,20   14,15,12    10,10,20    1,0,10 ... 1,5,3
.
.
500  12,1,20   14,15,12    10,10,20    1,0,10 ... 1,5,3
我的代码是

mat=matrix(data=NA, nrow=257, ncol=3)
n=1000
k=500
for(i in 1:n){
mat[i]<-colsplit(as.character(data[,i]), "," , c("a","b","c")) 
}
mat=矩阵(数据=NA,nrow=257,ncol=3)
n=1000
k=500
for(1:n中的i){

mat[i]如果要基于
作为分隔符创建新列

library(data.table)
library(splitstackshape)

df1 <- cSplit(df, 1:ncol(df), sep=",")[,lapply(.SD, as.numeric)]
df1
#    X1_1 X1_2 X1_3 X2_1 X2_2 X2_3 X3_1 X3_2 X3_3 X4_1 X4_2 X4_3
#1:   12    1   20   14   15   12   10   10   20    1    0   10
#2:   12    1   20   14   15   12   10   10   20    1    0   10
#3:   12    1   20   14   15   12   10   10   20    1    0   10
数据
df请提供一个可复制的
数据的小例子,以及预期的输出。不需要所有Github的东西——包在CRAN上。另外,如果数据是矩形的(听起来像是这样)
cSplit\u f
更快。+1尽管:-)@Ananda感谢
cSplit\u f
。这对我来说是新的。
 cSplit_f(df, 1:ncol(df), sep=",")[,lapply(.SD, as.numeric)]

str(df1)
#   Classes ‘data.table’ and 'data.frame':  3 obs. of  12 variables:
#  $ X1_1: num  12 12 12
#  $ X1_2: num  1 1 1
#  $ X1_3: num  20 20 20
#  $ X2_1: num  14 14 14
#  $ X2_2: num  15 15 15
#  $ X2_3: num  12 12 12
#  $ X3_1: num  10 10 10
#  $ X3_2: num  10 10 10
#  $ X3_3: num  20 20 20
#  $ X4_1: num  1 1 1
#  $ X4_2: num  0 0 0
#  $ X4_3: num  10 10 10
df <- structure(list(X1 = c("12,1,20", "12,1,20", "12,1,20"), X2 = c("14,15,12", 
 "14,15,12", "14,15,12"), X3 = c("10,10,20", "10,10,20", "10,10,20"
 ), X4 = c("1,0,10", "1,0,10", "1,0,10")), .Names = c("X1", "X2", 
 "X3", "X4"), class = "data.frame", row.names = c("1", "2", "3"
))