如何重新构造某些列在R中应具有相同值的列
我有一个这样的样品如何重新构造某些列在R中应具有相同值的列,r,R,我有一个这样的样品 df我们可以使用pivot\u longer将列的形状从“IK1”改为“Zoo8”,然后将“K1Q”改为“K3Q”,作为单独的列 library(dplyr) library(tidyr) df %>% pivot_longer(cols = IK1:Zoo8, names_to = c(".value", "grp"), names_pattern= "(.*[A-Za-z])(\\d+$)&quo
df我们可以使用pivot\u longer
将列的形状从“IK1”改为“Zoo8”,然后将“K1Q”改为“K3Q”,作为单独的列
library(dplyr)
library(tidyr)
df %>%
pivot_longer(cols = IK1:Zoo8, names_to = c(".value", "grp"),
names_pattern= "(.*[A-Za-z])(\\d+$)") %>%
pivot_longer(cols = K1Q:K3Q, names_to = "KQ", values_to = "Score") %>%
unite(KQ, KQ, grp, sep="")
-输出
# A tibble: 48 x 10
# People Sand ClaQQ Time Poor KQ IK GIQ Zoo Score
# <int> <chr> <chr> <chr> <chr> <chr> <int> <chr> <chr> <int>
# 1 1 F Y A Y K1Q1 90 A F 5
# 2 1 F Y A Y K2Q1 90 A F 2
# 3 1 F Y A Y K3Q1 90 A F 5
# 4 1 F Y A Y K1Q2 21 B P 4
# 5 1 F Y A Y K2Q2 21 B P 2
# 6 1 F Y A Y K3Q2 21 B P 5
# 7 1 F Y A Y K1Q3 17 E P 5
# 8 1 F Y A Y K2Q3 17 E P 2
# 9 1 F Y A Y K3Q3 17 E P 5
#10 1 F Y A Y K1Q4 15 B F 1
# … with 38 more rows
我们可以使用pivot\u longer
将列的形状从“IK1”改为“Zoo8”,然后将“K1Q”改为“K3Q”,作为单独的列
library(dplyr)
library(tidyr)
df %>%
pivot_longer(cols = IK1:Zoo8, names_to = c(".value", "grp"),
names_pattern= "(.*[A-Za-z])(\\d+$)") %>%
pivot_longer(cols = K1Q:K3Q, names_to = "KQ", values_to = "Score") %>%
unite(KQ, KQ, grp, sep="")
-输出
# A tibble: 48 x 10
# People Sand ClaQQ Time Poor KQ IK GIQ Zoo Score
# <int> <chr> <chr> <chr> <chr> <chr> <int> <chr> <chr> <int>
# 1 1 F Y A Y K1Q1 90 A F 5
# 2 1 F Y A Y K2Q1 90 A F 2
# 3 1 F Y A Y K3Q1 90 A F 5
# 4 1 F Y A Y K1Q2 21 B P 4
# 5 1 F Y A Y K2Q2 21 B P 2
# 6 1 F Y A Y K3Q2 21 B P 5
# 7 1 F Y A Y K1Q3 17 E P 5
# 8 1 F Y A Y K2Q3 17 E P 2
# 9 1 F Y A Y K3Q3 17 E P 5
#10 1 F Y A Y K1Q4 15 B F 1
# … with 38 more rows
再次感谢您的帮助,如果您看到KQ列,您会看到Q后面的数字并没有出现。我们能解决这个问题吗?@user330再次更新了帖子谢谢你的帮助,如果你看到KQ列,你会看到Q没有出现后的数字。我们能解决这个问题吗?@user330更新了帖子