首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据框的列强制转换为数字

将数据框的列强制转换为数字
EN

Stack Overflow用户
提问于 2014-01-03 00:36:39
回答 4查看 1K关注 0票数 0

我无法使用以下公式将数据框中选定的列强制转换为数字

代码语言:javascript
运行
复制
x<-read.csv("more.csv",colClasses="character")

test<-list(more[,10],more[,11],more[,12])
test2<-lapply(test,as.numeric)

代码语言:javascript
运行
复制
is.numeric(more[,10])
[1] FALSE

当我使用下面的公式时,它是有效的:

代码语言:javascript
运行
复制
more[,10]<-as.numeric(more[,10])

is.numeric(more[,10])
[1] TRUE

我找不出使用的第一个公式中的错误。

EN

回答 4

Stack Overflow用户

发布于 2020-01-13 22:46:17

因为我的工作不一定总是使用相同的列位置,所以我个人会使用josliber的方法和原始建议的组合。创建一个包含您想要强制执行的列名的向量,并使用lapply仅修改这些列。

代码语言:javascript
运行
复制
test <- as.vector(c("test1", "test2", "test3"))
more[test] = lapply(more[test], as.numeric)

干杯

票数 1
EN

Stack Overflow用户

发布于 2014-01-03 00:42:47

当您使用test2 <- lapply(test, as.numeric)时,它将构建一个新的列表(称为test2),其中所有元素都转换为数字。这不会改变test,也不会改变数据帧more

您可以在数据框中将列10、11和12转换为数字,如下所示:

代码语言:javascript
运行
复制
more[,10:12] = as.numeric(more[,10:12])
票数 0
EN

Stack Overflow用户

发布于 2020-10-24 13:23:26

如果as.numeric不工作,您也可以使用as.dataframe

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

https://stackoverflow.com/questions/20887385

复制
相关文章

相似问题

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