วิธีที่จะสร้างข้อความยอมรับข้อกล่าวหาใน defferent ตัวอย่างโดยสเปนเซอร์รี้ดครับ R

0

คำถาม

เอาเป็นว่าฉันมีข้อมูลของโต๊ะที่ติดตาม:

ID1 ID2  ID3
  a   a    b
  a   b    b
  b   b    b
  c   c    c
  c   c    d
  c   d    d
  d        e
  d        e
  e

งั้นฉันต้องการจะแปลงมันที่ชอบตามองโครงสร้าง:

Samples ID1 ID2 ID3
a        2  1   0
b        1  2   3
c        3  2   1
d        2  1   2
e        1  0   2

จะมีของคุณโปรดช่วยฉันด้วยกับสเปนเซอร์รี้ดครับ R ตบหรือรหัสประสบความสำเร็จมีการเปลี่ยนแปลง?

bash r
2021-11-23 11:01:33
2

คำตอบที่ดีที่สุด

3

ลองสเปนเซอร์รี้ดครับ R รหัสด้านล่างนี้

> table(stack(df))
      ind
values ID1 ID2 ID3
     a   2   1   0
     b   1   2   3
     c   3   2   1
     d   2   1   2
     e   1   0   2

ข้อมูล

> dput(df)
structure(list(ID1 = c("a", "a", "b", "c", "c", "c", "d", "d", 
"e"), ID2 = c("a", "b", "b", "c", "c", "d", NA, NA, NA), ID3 = c("b",
"b", "b", "c", "d", "d", "e", "e", NA)), class = "data.frame", row.names = c(NA,
-9L))
2021-11-23 11:04:04
1

ทางเลือกกับ tidyverse -reshape เพื่อ'นาน'รูปแบบกับ pivot_longerเอา count และ reshape กลับไปที่'กว้าง'รูปแบบกับ pivot_wider

library(dplyr)
library(tidyr)
df %>%
   pivot_longer(everything(), values_drop_na = TRUE, values_to = 'Samples') %>%
   count(name, Samples) %>% 
   pivot_wider(names_from = name, values_from = n, values_fill = 0)

-ส่งออก

# A tibble: 5 × 4
  Samples   ID1   ID2   ID3
  <chr>   <int> <int> <int>
1 a           2     1     0
2 b           1     2     3
3 c           3     2     1
4 d           2     1     2
5 e           1     0     2

ข้อมูล

df <- structure(list(ID1 = c("a", "a", "b", "c", "c", "c", "d", "d", 
"e"), ID2 = c("a", "b", "b", "c", "c", "d", NA, NA, NA), ID3 = c("b",
"b", "b", "c", "d", "d", "e", "e", NA)), class = "data.frame", 
row.names = c(NA,
-9L))
2021-11-23 16:54:02

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่