微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法根据一列的条件提取行?

如何解决有没有办法根据一列的条件提取行?

我希望提取第 4、11 行等的所有列。如果您查看我发布的数据,我希望提取紧接在“xsampa”列中的“A”之前的行值。例如,第 4 行的所有列(出现在第 5 行之前,在“xsampa”列中包含一个“A”)。我可以手动提取它们,但更好的方法肯定会为我节省一些劳力。

非常感谢您帮助我。

Filename Speaker Consonant      tdiff xsampa
1  AK_baagge.TextGrid       1  Geminate 0.23165381      B
2  AK_baagge.TextGrid       1  Geminate 0.09607762      b
3  AK_baagge.TextGrid       1  Geminate 0.15799431     A:
4  AK_baagge.TextGrid       1  Geminate 0.08753738     g:
5  AK_baagge.TextGrid       1  Geminate 0.02668823      A
6  AK_baagge.TextGrid       1  Geminate 0.12917102     e:
7  AK_baagge.TextGrid       1  Geminate 0.87323879      E
8   AK_baagi.TextGrid       1 Singleton 0.22415281      B
9   AK_baagi.TextGrid       1 Singleton 0.11448148      b
10  AK_baagi.TextGrid       1 Singleton 0.15873483     A:
11  AK_baagi.TextGrid       1 Singleton 0.09716495      g
12  AK_baagi.TextGrid       1 Singleton 0.05387364      A
13  AK_baagi.TextGrid       1 Singleton 0.10125358     i:
14  AK_baagi.TextGrid       1 Singleton 0.70685099      E
15   AK_baga.TextGrid       1 Singleton 0.78044616      B
16   AK_baga.TextGrid       1 Singleton 0.09659531      b
17   AK_baga.TextGrid       1 Singleton 0.09220461      @
18   AK_baga.TextGrid       1 Singleton 0.05159068      g
19   AK_baga.TextGrid       1 Singleton 0.13482446     A:
20   AK_baga.TextGrid       1 Singleton 0.46999388      E

解决方法

正如@Jon Spring 在评论中回答的那样,这个问题的答案是使用 dplyr::lead() 函数而不是 lag()。这样,包含值 'A' 的 'xsampa' 列中的所有行都将被过滤并产生所需的输出。

lag() 函数只会在输入后面生成第一行。

答案:

.otf

输出:

mydata_new<- mydata %>% filter(lead (xsampa) == "A")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。