tidyr功能练习

tidyr功能练习,r,dataframe,tidyr,R,Dataframe,Tidyr,使用first.df数据框,使用separate()函数将DoB列数据分隔为3个新列-日期、月份、年份。我尝试了最后一行,但没有给出期望的结果 fname <- c("Martina", "Monica", "Stan", "Oscar") lname <- c("Welch", "Sobers", "Griffith", "Williams") DoB <- c("1-Oct-1980", "2-Nov-1982", "13-Dec-1979", "27-Jan-1988")

使用first.df数据框,使用separate()函数将DoB列数据分隔为3个新列-日期、月份、年份。我尝试了最后一行,但没有给出期望的结果

fname <- c("Martina", "Monica", "Stan", "Oscar")
lname <- c("Welch", "Sobers", "Griffith", "Williams")
DoB <- c("1-Oct-1980", "2-Nov-1982", "13-Dec-1979", "27-Jan-1988")

first.df <- data.frame(fname,lname,DoB)
print(first.df)

separate(first.df,DoB,c('date','month','year'),sep = '-')

fname将我的评论移动到实际答案

要保留日期列,您需要添加
remove=FALSE
参数,要放弃其中一个单独的列,只需添加
NA
而不是列名。正确的命令是


separate(first.df,DoB,c(NA,'month','year'),sep='-',remove=FALSE)

您的结果有什么问题?我在我的机器上运行了你的代码,它看起来是正确的。日期应该包含DoB值,而不是我的计日工。确保加载
tidyr
,并且没有加载其他
单独的
函数。“不给期望的结果”一点帮助都没有。。。1.期望的结果是什么?2.你得到了什么?试试这个:
separate(first.df,DoB,c(NA,'month','year'),sep='-',remove=FALSE)
yes,它在@CaioBrighenti工作