R语言 计算唯一条目和绑定列

hc8w905p  于 2023-03-27  发布在  其他
关注(0)|答案(1)|浏览(122)

我想找到ID1和ID2的唯一条目,所以如果一个“aaf”在ID1和ID2中输入数据,如果将是单个条目,所以这里的唯一条目将8从ID1和ID2。我想在单独的变量中分配唯一条目。你可以参考下面的图片
然后我想绑定列一个由另一个像下面的图片。最后的数据库应该看起来像绑定行

df <- structure(list(city=c("del","mum","nav","pun","bang","chen","triv","vish","del"),
                      name= c("xab","Lan","mun","mmc","aaf","nnhu","njam","jiha","ntha"),
  `ID 1` = c(653, NA, 240, NA, 826, NA, NA, 440, 
 385), `ID 2` = c(NA, 610, NA, 240, 551, 854, NA, 490, 653),
 `S1`=c(213, 233, NA, NA, 333, 543, 122, NA, 765),
`S1`=c(176, NA, NA, 100, 124, 621, NA, 434, 323)), row.names = c(NA, 
      -9L), class = "data.frame")

计算如下的唯一条目

像这样绑定列

hm2xizp9

hm2xizp91#

我怀疑你可能有更好的方法可以用这里的数据来实现你的最终目标,但没有进一步的信息,我只能对你的帖子提供一个字面上的答案。这一大块解决了你问题的第一部分:

require(tidyverse) 

df %>% 
    rowwise() %>% 
    mutate(ID_distinct = n_distinct(c_across(`ID 1`:`ID 2`), na.rm = TRUE),
           S_distinct = n_distinct(c_across(S1:S2), na.rm = TRUE)) %>% 
    relocate(ID_distinct, .after = `ID 2`)

# A tibble: 9 × 8
# Rowwise: 
  city  name  `ID 1` `ID 2` ID_distinct    S1    S2 S_distinct
  <chr> <chr>  <dbl>  <dbl>       <int> <dbl> <dbl>      <int>
1 del   xab      653     NA           1   213   176          2
2 mum   Lan       NA    610           1   233    NA          1
3 nav   mun      240     NA           1    NA    NA          0
4 pun   mmc       NA    240           1    NA   100          1
5 bang  aaf      826    551           2   333   124          2
6 chen  nnhu      NA    854           1   543   621          2
7 triv  njam      NA     NA           0   122    NA          1
8 vish  jiha     440    490           2    NA   434          1
9 del   ntha     385    653           2   765   323          2

这个程序块解决了第二部分:

stack(df[3:4]) %>% 
    bind_cols(
        stack(df[5:6])
    ) %>%
    rename(ID1 = `values...1`, S1 = `values...3`) %>%
    select(-c(`ind...2`, `ind...4`)) %>%
    as_tibble()


New names:
* values -> values...1
* ind -> ind...2
* values -> values...3
* ind -> ind...4
# A tibble: 18 × 2
     ID1    S1
   <dbl> <dbl>
 1   653   213
 2    NA   233
 3   240    NA
 4    NA    NA
 5   826   333
 6    NA   543
 7    NA   122
 8   440    NA
 9   385   765
10    NA   176
11   610    NA
12    NA    NA
13   240   100
14   551   124
15   854   621
16    NA    NA
17   490   434
18   653   323

如果你能提供更多关于你希望用你的数据实现什么的背景,我(或其他人)可能会提供更好的指导。

相关问题