我有一个77行460列的数据框架。第一列表示标题为"rs_number"的每行的rsID。每个列由一个SNP rsID(例如,rs4751)标记。
我需要将这个数据帧限制为尺寸76 X 76,以反映与变量"RS_number"相同的列名。我的第一个想法是使row.names等于第一列"RS_number",但我不确定如何向前推进,以及如何限制列与行名相同的标识符。
下面是我用来创建数据框架的代码和数据框架的示例:'''newdf = concatenated[concatenated$RS_number %in% colnames(hours)[3:76],] %>%
as.data.frame()'''
RS_number rs1 rs2 rs3 rs4 rs10
[,1] rs1 1.0 0.2 0.3 0.4 NA
[,2] rs2 0.0 1.0 0.0 NA 0.2
[,3] rs3 0.2 0.1 1.0 NA NA
[,4] rs4 0.0 0.1 0.5 1.0 NA
[,5] rs5 NA 0.1 NA 0.2 NA
[,6] rs9 0.5 0.4 0.1 0.0 0.6
我希望我的数据框架只保留那些常见的列和rs_number,包括rs1, rs_2, rs_3, rs_4,并排除rs_5和rs_10。
我们可以使用intersect
与'Rs_number'列值和'df1'的列名,然后,将'Rs_number'与相交的元素连接起来以选择列
nm1 <- intersect(df1$Rs_number, names(df1))
df1[c("Rs_number", nm1)]