首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将类和模式从字符更改为数字

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

Stack Overflow用户
提问于 2014-09-14 03:39:25
回答 2查看 37.6K关注 0票数 3

下面是一个样本数据集和几行令我困扰的代码。我不知道如何将这些派生变量(Year和Session)转换为数字,这样我就可以获得正确的摘要并使用"subset“函数。

代码语言:javascript
复制
##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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-14 03:43:41

台词

代码语言:javascript
复制
as.factor(df$StudyAreaVisitNote)
as.numeric(df$Year)
as.numeric(df$Session)

请勿永久更改df中的值。它们返回打印到控制台的转换后的向量,然后,因为您没有将它们保存在任何地方,所以一旦完成对该行的调用,它们就会消失。通常R中的对象不会通过引用进行更新,您必须始终将返回的结果重新分配到您想要存储它的任何位置。所以试一试

代码语言:javascript
复制
df$Year <- as.numeric(df$Year)
df$Session <- as.numeric(df$Session)

相反,

票数 4
EN

Stack Overflow用户

发布于 2014-09-14 03:43:31

你不能把它们分配给任何东西...

代码语言:javascript
复制
as.numeric(df$Year)
as.numeric(df$Session)

应该是:

代码语言:javascript
复制
df$Year <- as.numeric(df$Year)
df$Session <- as.numeric(df$Session)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25826951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档