簡體   English   中英

將 [1x1] dataframe 中的值重新排列為 [MxN] dataframe 中的 R

[英]Re-arranging values in a [1x1] dataframe to [MxN] dataframe in R

當前數據框中的值似乎是-

C1
1000|22345|AMERICA|2021-05-03|12:12:12+2220|03330|AUSTRALIA|2021-04-03|12:00:00

我們如何將其重新排列為-

 C1    C2       C3           C4          C5         
1000  22345   AMERICA    2021-05-03   12:12:12
2220  03330  AUSTRALIA   2021-04-03   12:00:00

規則:

使用 | 分隔列使用 + 分隔行

+替換為換行符 ( \n ) 並使用|讀取數據作為分隔符。

read.table(text = gsub('+', '\n', df$C1, fixed = TRUE), sep = '|')

#    V1    V2        V3         V4       V5
#1 1000 22345   AMERICA 2021-05-03 12:12:12
#2 2220  3330 AUSTRALIA 2021-04-03 12:00:00

數據

df <- structure(list(C1 = "1000|22345|AMERICA|2021-05-03|12:12:12+2220|03330|AUSTRALIA|2021-04-03|12:00:00"), class = "data.frame", row.names = c(NA, -1L))

我們可以separate使用

library(dplyr)
library(tidyr)
library(tidyr)
df %>%
    separate_rows(C1, sep="\\+") %>% 
    separate(C1, into = str_c('C', 1:5), sep="\\|")
# A tibble: 2 x 5
#  C1    C2    C3        C4         C5      
#  <chr> <chr> <chr>     <chr>      <chr>   
#1 1000  22345 AMERICA   2021-05-03 12:12:12
#2 2220  03330 AUSTRALIA 2021-04-03 12:00:00

數據

df <- structure(list(C1 = "1000|22345|AMERICA|2021-05-03|12:12:12+2220|03330|AUSTRALIA|2021-04-03|12:00:00"), class = "data.frame", row.names = c(NA, 
-1L))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM