在R中为同一变量寻找配对值

时间:2019-04-12 15:49:06

标签: r

我是试图学习R.的更大的生物学家,并且我有一个如下的数据集:

set group 
A    10
B    10 
A    11
A    11
A    34
B    34
B    67 


我正在尝试拔出组相同但集合不同的所有对。例如,我的理想输出应如下所示:

set group 
A    10
B    10 
A    34
B    34

我尝试了以下代码,但没有得到所需的内容。有人可以帮忙吗?提前致谢。

for (i in group) {
    if(set == "A" || (set == "B")) {
      print(set)

3 个答案:

答案 0 :(得分:2)

这是report zz_test_split_capital. parameters: p_input type string default 'NameAgeAddress' lower case. data: output type stringtab, off type i, moff type i, mlen type i. while off < strlen( p_input ). find regex '[A-Z][^A-Z]*' in section offset off of p_input match offset moff match length mlen. if sy-subrc eq 0. append substring( val = p_input off = moff len = mlen ) to output. off = moff + mlen. else. exit. endif. endwhile. cl_demo_output=>display_data( output ). 的一个选项,其中我们按'group'分组,然后按my $input = "NameAgeAddress"; my @output = split /(?=[A-Z])/, $input; # gives @output = ('Name','Age','Address') 分组以使'set'的不同元素数保持为2

dplyr

数据

filter

答案 1 :(得分:1)

我们可以依靠R base

> do.call(rbind, lapply(split(dat, dat$group), function(x) x[length(unique(x$set))==2]))
     set group
10.1   A    10
10.2   B    10
34.5   A    34
34.6   B    34

答案 2 :(得分:1)

还有dplyr的可能性:

df %>%
 group_by(group) %>%
 filter(n() == 2 & any(set != first(set)))

  set   group
  <chr> <int>
1 A        10
2 B        10
3 A        34
4 B        34