我有一个数据集,其中包含包含日期和测试值的列
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