r - 将类和模式从字符更改为数字

标签 r class character mode

下面是一个示例数据集和几行令我困扰的代码。我不知道如何将这些派生变量(年份和 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/

相关文章:

R lubridate 查找连续时间范围和一组间隔之间的非重叠时间段

c++ - 附加冒号在模板类中意味着什么。类名<T, SIZE>::类名:

javascript - 更改 ES6 构造函数中键的值

java - 使用基本 Java 方法查找字符串中的模式

REST URL 请求和方括号 ('[' 和 ']' )

R排序拆分了小数点左边不同位数的条目的排序

r - 遍历数据框中所有可能的列和行组合

r - R 基础对称矩阵中的图形可视化,其值为对角线

C++ 继承和共享/非共享函数

Java:生成唯一的随机字符