Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重新构造某些列在R中应具有相同值的列_R - Fatal编程技术网

如何重新构造某些列在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更新了帖子