下面是一个示例数据集和几行令我困扰的代码。我不知道如何将这些派生变量(年份和 session )转换为数字,以便我可以获得适当的摘要并使用“子集”函数。
##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
最佳答案
线条
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)
代替
关于r - 将类和模式从字符更改为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25826951/