Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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_Dataframe_Apply_Tidyr_Dplyr - Fatal编程技术网

R 将数据帧从多个因素列重新构造为一个包含因素的列

R 将数据帧从多个因素列重新构造为一个包含因素的列,r,dataframe,apply,tidyr,dplyr,R,Dataframe,Apply,Tidyr,Dplyr,您好,我的数据帧当前看起来如下: Clone ID Sequence Factor_1 Factor_2 Factor_3 clonename seq_data 1 5 4 clonename2 seq_data2 2 1 3 如何高效地重新构造数据帧,以便: Clone ID Sequence Factor Factor_populatio

您好,我的数据帧当前看起来如下:

Clone ID    Sequence    Factor_1    Factor_2    Factor_3

clonename   seq_data       1            5          4

clonename2  seq_data2      2            1          3
如何高效地重新构造数据帧,以便:

Clone ID    Sequence    Factor    Factor_population

clonename   seq_data   Factor_1          1

clonename   seq_data   Factor_2          5

...

clonename2  seq_data2  Factor_3          3

*为清晰起见,编辑了表格格式。关于StackOverflow的第一个问题,我尽了最大努力将问题表达清楚,因此对于那些试图帮助解决此问题的人表示歉意。

我们可以使用
start_with
是一个函数,可以从中选择以字符串开头的列

library(dplyr)
library(tidyr)

dat2 <- dat %>%
  gather(Factor, Factor_population, starts_with("Factor_"))

dat2
#     Clone.ID  Sequence   Factor Factor_population
# 1  clonename  seq_data Factor_1                 1
# 2 clonename2 seq_data2 Factor_1                 2
# 3  clonename  seq_data Factor_2                 5
# 4 clonename2 seq_data2 Factor_2                 1
# 5  clonename  seq_data Factor_3                 4
# 6 clonename2 seq_data2 Factor_3                 3
库(dplyr)
图书馆(tidyr)
dat2%
聚集(因子,因子人口,以(“因子”)开始)
dat2
#Clone.ID序列因子\群体
#1克隆名称序列数据系数1 1
#2克隆名称2序列数据2因子2
#3克隆名称序列数据因子2 5
#4克隆名称2序列数据2因子1
#5克隆名称序列数据因子3 4
#6克隆名称2序列数据2因子3
数据

dat <- read.table(text = "'Clone ID'    Sequence    Factor_1    Factor_2    Factor_3

clonename   seq_data       1            5          4

clonename2  seq_data2      2            1          3",
                  header = TRUE, stringsAsFactors = FALSE)

dat感谢您的回答,并链接到您提供的其他解决方案!我不知道我处理的数据类型是“宽”格式。学到了很多!