下面是一个示例数据集和几行令我困扰的代码。我无法弄清楚如何将这些派生变量(年和会话)转换为数字,以便我可以获得正确的摘要并使用“子集”函数。
##Generate sample dataset
df=data.frame(StudyAreaVisitNote=c("2006 Session 1","2006 Session 2", "2008 Session 4", "2012 Session 3"))
##Create new column denoting year and session on their own
as.factor(df$StudyAreaVisitNote)
df$Year <- substr(x = df$StudyAreaVisitNote, start = 1, stop = 4)
df$Session <- substr(x = df$StudyAreaVisitNote, start = 13, stop = 14)
##Summary of Data
summary(df) ## Year and Session are Class and Mode "Character", summary provides little info
##Turn Year and Session into Numeric
as.numeric(df$Year)
as.numeric(df$Session)
##Try Summary of Data Again
summary(df) ## Again, Year and Session are Class and Mode "Character", summary provides little info
答案 0 :(得分:4)
行
as.factor(df$StudyAreaVisitNote)
as.numeric(df$Year)
as.numeric(df$Session)
不要永久更改df
中的值。它们返回打印到控制台的变换向量,然后,因为你没有将它们保存在任何地方,所以它们会在调用完成后立即消失。通常,R中的对象不会通过引用更新,您必须总是将返回的结果重新分配给您希望存储它的位置。所以试试
df$Year <- as.numeric(df$Year)
df$Session <- as.numeric(df$Session)
代替
答案 1 :(得分:3)
你没有把它们分配给任何东西......
as.numeric(df$Year)
as.numeric(df$Session)
应该是:
df$Year <- as.numeric(df$Year)
df$Session <- as.numeric(df$Session)