Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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中的数据帧中将行拆分为列_R_String_Row - Fatal编程技术网

在r中的数据帧中将行拆分为列

在r中的数据帧中将行拆分为列,r,string,row,R,String,Row,导出后如何拆分此列 我需要将行中的每个值作为一个单独的列用空格分隔 目前我有: V1 X 1111 1324.01 1258.00 5154836 X 1111 1324.01 1258.00 5154836 X 1111 1324.01 1258.00 5154836 X 1111 1324.01 1258.00 5154836 这就是我想要的: V1 V2 V3 V4 V5 X 1111 1324.01 1258.00

导出后如何拆分此列

我需要将行中的每个值作为一个单独的列用空格分隔

目前我有:

V1
X 1111 1324.01 1258.00 5154836
X 1111 1324.01 1258.00 5154836
X 1111 1324.01 1258.00 5154836
X 1111 1324.01 1258.00 5154836
这就是我想要的:

V1    V2       V3         V4        V5
X    1111    1324.01    1258.00   5154836
X    1111    1324.01    1258.00   5154836
X    1111    1324.01    1258.00   5154836
X    1111    1324.01    1258.00   5154836
我试过:

separate(col = V1, into = c("V2", "V3", "V4", "V5", "V6"), sep = " ")
以及:

SPS_X1%strsplit(SPS_X,”)
但这些并不能满足我的需要


另外,我的数据框有>5000000行

基于您的共享链接制作此
脚本

file <- "DD_1.x"

clean_data <- function(string){
  no_blank <- gsub("\\s+"," ", string) # Remove extra blank spaces 
  strsplit(no_blank," ")[[1]] # Split string by spaces, return array
}

l <- readLines(file, n = 200) # Read first 200 lines

data.frame(do.call("rbind",lapply(l,clean_data))) # Makes dataframe

file您可以使用
read.table
将行拆分为列

数据:


x尝试
库(splitstackshape);cSplit(df1,“V1”和“”)
在base R中,您可以执行
SPS_X1感谢@AllanCameron的回答,但是这个命令返回“结果的列数不是向量长度的倍数(arg 2)”,我在[link]中共享了基文件(),谢谢,这是一个很好的工作,但只返回第一行。。。L
file <- "DD_1.x"

clean_data <- function(string){
  no_blank <- gsub("\\s+"," ", string) # Remove extra blank spaces 
  strsplit(no_blank," ")[[1]] # Split string by spaces, return array
}

l <- readLines(file, n = 200) # Read first 200 lines

data.frame(do.call("rbind",lapply(l,clean_data))) # Makes dataframe
read.table(text=x$V1)
#  V1   V2      V3   V4      V5
#1  X 1111 1324.01 1258 5154836
#2  X 1111 1324.01 1258 5154836
#3  X 1111 1324.01 1258 5154836
#4  X 1111 1324.01 1258 5154836
x <- data.frame(V1=c("X 1111 1324.01 1258.00 5154836","X 1111 1324.01 1258.00 5154836"
 ,"X 1111 1324.01 1258.00 5154836","X 1111 1324.01 1258.00 5154836"))