gpt4 book ai didi

r - R 中的子集数据不起作用

转载 作者:行者123 更新时间:2023-12-05 01:46:44 25 4
gpt4 key购买 nike

我正在尝试对我的数据进行子集化,但我终究无法弄清楚为什么这不起作用。这是我的数据的链接,它是一个 csv 文件 Data .我已经尝试过这些子集化方法,但它们都只是创建了一个没有观察结果的标题。

alveolar.df <- combine.df[combine.df$articulation == "velar_coronal", ]
alveolar.df <- subset(combine.df, articulation == "velar_coronal")
alveolar.df <- combine.df[combine.df$articulation %in% c("velar_coronal"), ]

这是一个数据样本-

combine.df <- structure(list(start = c(215.76, 278.78, 862.35, 1050.22, 512.59, 
552.97), end = c(217.18, 280.68, 863.85, 1051.72, 515.02, 555.67
), articulation = c(" velar_coronal", " velar_labial", " velar_coronal",
" velar_coronal", " velar_coronal", " velar_coronal"), hometown = structure(c(1L,
NA, 2L, 3L, 4L, 4L), .Label = c(" Montana ", " ", " San Leandr ",
" Southern California "), class = "factor")), .Names = c("start",
"end", "articulation", "hometown"), row.names = c(NA, 6L), class = "data.frame")

最佳答案

您在列中有额外的空格,这就是为什么您从逻辑表达式中得到所有 FALSE 结果,因此您的子集中没有行。请注意下面每个字符串开头的额外空格。

combine.df$articulation
# [1] " velar_coronal" " velar_labial" " velar_coronal" " velar_coronal"
# [5] " velar_coronal" " velar_coronal"
combine.df$articulation == "velar_coronal"
# [1] FALSE FALSE FALSE FALSE FALSE FALSE

您实际上在不止一个专栏中有这个问题。您可以执行以下两项操作之一:

  1. 当您最初将数据读入 R 时使用 strip.white = TRUE(假设您使用了 read.csv()read.table ())

  2. 在 base R 中使用新的 trimws() 函数来修剪列中多余的空格

    combine.df$articulation <- trimws(combine.df$articulation) 

    然后再次尝试您的代码。

更好的方法是第一种,使用 strip.white = TRUE 返回并再次读取数据,因为这将确保任何列中没有额外的空格。

关于r - R 中的子集数据不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com