我正在尝试对我的数据进行分组,对于我的生活,我无法弄清楚为什么这不起作用。这是我的数据的链接,这是一个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")
答案 0 :(得分:4)
您在列中有额外的空格,这就是您从逻辑表达式获取所有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
您确实在多个专栏中遇到此问题。你可以做以下两件事之一:
最初将数据读入R时使用strip.white = TRUE
(假设您使用了read.csv()
或read.table()
)
使用基数R中的新trimws()
函数修剪列中多余的空格
combine.df$articulation <- trimws(combine.df$articulation)
然后再次尝试您的代码。
更好的方法是第一个,使用strip.white = TRUE
返回并再次读取数据,因为这样可以确保任何列中都没有额外的空格。