r语言 - 使用单独的分隔来划分包含日期格式的列



我有一个数据集,其中包含包含日期和测试值的列

Dataset
ColumnA
03.01.19 3,0
02.02.18 2,0
01.03.17 1,0

我需要将它们分隔在日期列和值列中:

Dataset
date        value
03.01.19    3,0
02.02.18    2,0
01.03.17    1,0
separate(Dataset, "ColumnA", 
                  into = c("date","value"), 
                         )

但它给了我这样的新列,并丢弃了其余信息:

Dataset
date        value
03          01
02          02
01          03

我该如何纠正?

我试过tidyr

separate(Dataset, "ColumnA", 
                  into = c("date","value")

我还尝试更改日期和值之间的空格并指定它与sep = ""论点。

ColumnA
03.01.19/3,0
02.02.18/2,0
01.03.17/1,0
separate(Dataset, "ColumnA", 
                  into = c("date","value"), 
                     sep= "/"    )
splitstackshape为您

执行此操作,我相信还有其他软件包。 cSplit是您正在寻找的功能。

cSplit(Data,"ColumnA", " ")
## OutPut
ColumnA_1 ColumnA_2
03.01.19       3,0
02.02.18       2,0
01.03.17       1,0

编辑

读取稍后显示的数据后,您可以在如下所示的tidyverse内继续操作(根据需要rename(:

  df %>% 
   mutate(Date=row.names(.)) %>% 
   filter(Date!="ColumnA") %>% 
   select(Date,everything()) %>% 
   rename(date=Date,value=Dataset)
  date      value
1 03.01.19   3,0
2 02.02.18   2,0
3 01.03.17   1,0

原装(纯基础(:

我们可以使用read.table

df<-read.table(text="Dataset
ColumnA
03.01.19 3,0
02.02.18 2,0
01.03.17 1,0",header=T,sep=" ",as.is=T,fill=T)

然后(根据需要重命名和重新排序(:

df$ColumnA<-row.names(df)
rownames(df)<-NULL
df[2:nrow(df),]
 Dataset   ColumA
2     3,0 03.01.19
3     2,0 02.02.18
4     1,0 01.03.17

最新更新