首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据帧的一部分更改为字符,然后在R中改为数字

将数据帧的一部分更改为字符,然后在R中改为数字
EN

Stack Overflow用户
提问于 2014-02-05 23:43:12
回答 2查看 353关注 0票数 0

我有个简单的问题。我有一个有121列的数据框架。列9:121需要是数字,但是当导入到R中时,它们是数字、整数和因子的混合物。列1:8需要保留字符。

我见过一些人使用循环,而另一些人使用()。你认为最优雅的方法是什么?

非常感谢,

保罗·M

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 23:55:25

试试下面的..。apply函数允许循环遍历dataframe的任意行、cols或两者,并应用任何函数,因此,为了确保9:121中的所有列都是数字的,您可以执行以下操作:

代码语言:javascript
复制
table[,9:121] <- apply(table[,9:121],2, function(x) as.numeric(as.character(x)))
table[,1:8] <- apply(table[,1:8], 2, as.character)

其中的表是你读到R的数据。

简单地说,我在apply函数中指定了要循环遍历的表--在本例中,我们要对表的子集进行更改,然后指定数字2来指示列,最后给出as.numeric或as.character函数的名称。然后,赋值运算符将表中的旧值替换为格式正确的新值。

-EDIT:就像我记得的那样,更改了第一行,如果您从一个因子转换为一个数字,那么您得到的是因子级别的整数,而不是您认为首先需要转换到因子的数字,然后是数字,这可以通过在as.numeric中包装as.character来完成。

票数 0
EN

Stack Overflow用户

发布于 2014-02-06 00:57:31

当您在表中阅读时,使用strinsAsFactors=FALSE,那么就不会有任何因素了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21591090

复制
相关文章

相似问题

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