首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为R中缺失数据的某种模式

问作为R中缺失数据的某种模式
EN

Stack Overflow用户
提问于 2014-12-14 00:32:32
回答 3查看 297关注 0票数 2

dataframe由5个变量组成:

代码语言:javascript
复制
> head(list_outdegrees, 5)
             Name OUTdegrees Followers Friends Statuses
1          Case_1         11     44423    4053    34518
2          Case_2         35         0       0        0
3          Case_3         13     41775     404   279384
4          Case_4         20     91952       0   108603
5          Case_5         13     31886    2885     4847

我最近在这个站点上做了asked,如何使零在R中丢失,并被告知使用na.strings作为read.csv("filename.csv", na.strings="0")。这很好,但是这并不是我所需要的,因为有时零在我的例子中是实际的数据。

在上面的示例中,Case_2缺少数据,因为Followers、Friends和Statuses变量都是零。然而,在Case_4的情况下,零是一个实际的数据。

因此,只有当大小写中的三个变量(Followers、Friends和Statuses)为零时,才会丢失数据。而且,OUTdegrees总是有一个值,不管它是否丢失数据。

当Followers、Friends和Statuses都是零时,是否可以告诉R删除(或忽略)情况?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-14 00:35:55

您可以使用子集函数:

代码语言:javascript
复制
subset(list_outdegrees,Followers!=0 | Friends!=0 | Statuses!=0)
票数 2
EN

Stack Overflow用户

发布于 2014-12-14 00:36:27

您不想删除三个零中的一个实际上是一个缺失值的行。我会用缺少的值读取文件,删除丢失的行,然后手工计算0。

代码语言:javascript
复制
data <- read.csv("filename.csv")
data <- data[!(is.na(data$Followers) & is.na(data$Friends) & is.na(data$Statuses)), ]
data[is.na(data)] <- 0
票数 1
EN

Stack Overflow用户

发布于 2014-12-14 03:18:23

您可以在有关列( rowSums )的逻辑索引矩阵上使用list_outdegrees[-(1:2)]!=0。如果有多个列,这将是有用的。

代码语言:javascript
复制
 list_outdegrees[!!rowSums(!!list_outdegrees[-(1:2)]),]
 #   Name OUTdegrees Followers Friends Statuses
 #1 Case_1         11     44423    4053    34518
 #3 Case_3         13     41775     404   279384
 #4 Case_4         20     91952       0   108603
 #5 Case_5         13     31886    2885     4847

上面的内容也可以写成

代码语言:javascript
复制
 list_outdegrees[rowSums(list_outdegrees[-(1:2)]!=0)!=0,]

或者将Reduce与|结合使用

代码语言:javascript
复制
 list_outdegrees[Reduce(`|`, list_outdegrees[-(1:2)]),]
 #    Name OUTdegrees Followers Friends Statuses
 #1 Case_1         11     44423    4053    34518
 #3 Case_3         13     41775     404   279384
 #4 Case_4         20     91952       0   108603
 #5 Case_5         13     31886    2885     4847

数据

代码语言:javascript
复制
list_outdegrees <- structure(list(Name = c("Case_1", "Case_2", "Case_3", "Case_4", 
"Case_5"), OUTdegrees = c(11L, 35L, 13L, 20L, 13L), Followers = c(44423L, 
0L, 41775L, 91952L, 31886L), Friends = c(4053L, 0L, 404L, 0L, 
2885L), Statuses = c(34518L, 0L, 279384L, 108603L, 4847L)), .Names = c("Name", 
"OUTdegrees", "Followers", "Friends", "Statuses"), class = "data.frame", 
row.names = c("1", "2", "3", "4", "5"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27465130

复制
相关文章

相似问题

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