首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用freed读取大型cdv时,为什么不能引用列号来读取列?

当使用freed读取大型cdv时,为什么不能引用列号来读取列?
EN

Stack Overflow用户
提问于 2016-05-14 03:22:41
回答 1查看 104关注 0票数 2

例如,当使用fread读取csv时:

代码语言:javascript
复制
library(data.table)
outcome4<-fread("outcome-of-care-measures.csv")

然后,如果第11列(‘医院30天心脏病发作死亡(死亡率)’)不是'Not Available'的话,我想对其进行分类观察。所以我写了如下:

代码语言:javascript
复制
outcome5<-subset(outcome4, outcome4[,11]!="Not Available")

subset函数似乎不起作用,结果5的观察结果与outcome4相同,第11列的所有观测结果均为11。

为什么?如果我使用read.csv函数,一切都很好。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-14 03:36:13

看看outcome4[,11]的结果。

正如您所写的,fread()返回一个数据表。反过来,outcome4[,11]返回1111永远都不等于"Not Available",所以你可以把整个表拿回来。您希望对数据表的第11列使用outcome4[, 11, with = FALSE],或者在fread()中使用data.table = FALSE返回数据帧而不是数据表。

但是这样做的数据表方式是:

代码语言:javascript
复制
outcome4[<column name 11> != "Not Available"]

其中<column name 11>是第11列的未引用名称。

或者,将"Not Available"更改为NA

代码语言:javascript
复制
outcome4 <- fread(file, na.strings = "Not Available")
outcome4[!is.na(<column name 11>)]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37222145

复制
相关文章

相似问题

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