在r中把数据框中的一行拆成一列。

问题描述 投票:0回答:1

导出后如何将这一列分割开来?

我需要把一行中的每个值用空格隔开,作为一个单独的列。

目前我有。

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 <- SPS_X %>% strsplit(SPS_X," ") 

但这些都不能满足我的需求。

P.S.我的数据框架有>5000000行。

r string row
1个回答
1
投票

根据你的分享链接做了这个 script

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

希望能帮到你。

去除R项目上多余的空格


0
投票

您可以使用 read.table分栏.

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"))
© www.soinside.com 2019 - 2024. All rights reserved.