每个 NA 值仅显示一行

发布于 2024-08-19 14:58:50 字数 1293 浏览 3 评论 0原文

在我的脚本中的某个时刻,我喜欢查看缺失值的数量 在我的 data.frame 中并显示它们。 就我而言:

out <- read.csv(file="...../OUT.csv", na.strings="NULL")

sum(is.na(out$codeHelper))

out[is.na(out$codeHelper),c(1,length(colnames(out)))]

它工作得很好。 然而,最后一个命令显然给了我整个data.frame,其中NATRUE,例如:

5561                  Yemen (PDR) <NA>
5562                  Yemen (PDR) <NA>
5563                  Yemen (PDR) <NA>
5564                  Yemen (PDR) <NA>
5565                  Yemen (PDR) <NA>
5566                  Yemen (PDR) <NA>
5567                  Yemen (PDR) <NA>
5568                  Yemen (PDR) <NA>
5601 Zaire (Democ Republic Congo) <NA>
5602 Zaire (Democ Republic Congo) <NA>
5603 Zaire (Democ Republic Congo) <NA>
5604 Zaire (Democ Republic Congo) <NA>
5605 Zaire (Democ Republic Congo) <NA>

有一个大框架和很多NA 看起来相当混乱。 对我来说重要的只是 NA 发生的地方,即哪个国家/地区 (在第二列中)在第三列中缺少值。

那么我怎样才能只显示每个国家的一行呢?

它应该看起来像这样:

    1                  Yemen (PDR) <NA>
    2 Zaire (Democ Republic Congo) <NA>
    3                          USA <NA>
    4                     W. Samoa <NA>

At some point in my script I like to see the number of missing values
in my data.frame and display them.
In my case I have:

out <- read.csv(file="...../OUT.csv", na.strings="NULL")

sum(is.na(out$codeHelper))

out[is.na(out$codeHelper),c(1,length(colnames(out)))]

It works perfectly fine.
However, the last command obviously gives me the whole data.frame where the NA is TRUE, eg:

5561                  Yemen (PDR) <NA>
5562                  Yemen (PDR) <NA>
5563                  Yemen (PDR) <NA>
5564                  Yemen (PDR) <NA>
5565                  Yemen (PDR) <NA>
5566                  Yemen (PDR) <NA>
5567                  Yemen (PDR) <NA>
5568                  Yemen (PDR) <NA>
5601 Zaire (Democ Republic Congo) <NA>
5602 Zaire (Democ Republic Congo) <NA>
5603 Zaire (Democ Republic Congo) <NA>
5604 Zaire (Democ Republic Congo) <NA>
5605 Zaire (Democ Republic Congo) <NA>

With a big frame and a lot of NAs that looks pretty messy.
Important to me is only where the NA occurs i.e which country
(in the second column) has a missing value in the third column.

So how can i only display a single row for each country?

It should look something like this:

    1                  Yemen (PDR) <NA>
    2 Zaire (Democ Republic Congo) <NA>
    3                          USA <NA>
    4                     W. Samoa <NA>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖心男生 2024-08-26 14:58:50

unique(c(1,2,3,4,4))

会给你

1 2 3 4

所以

unique(out[is.na(out$codeHelper),c(1,length(colnames(out)))])

应该是您要找的?

unique(c(1,2,3,4,4))

will give you

1 2 3 4

so

unique(out[is.na(out$codeHelper),c(1,length(colnames(out)))])

should be what you're looking for?

满地尘埃落定 2024-08-26 14:58:50

尝试这样的操作:

subset(dataframe.name, !duplicated(country.colname),
       select=c(col1.name, col2.name, ...))

另请参阅此相关问题:如何删除数据框中的部分重复项?

Try something like this:

subset(dataframe.name, !duplicated(country.colname),
       select=c(col1.name, col2.name, ...))

see also this related question: how to remove partial duplicates from a data frame?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文