1 2 1 cg00035864 TTTY18 2 cg00050873 TSPY4;FAM197Y2 3 cg00061679 DAZ1;DAZ4;DAZ4 4 cg00063477 EIF1AY 5 cg00121626 BCORL2 6 cg00212031 TTTY14 很明显这个数据框的第二列并不是唯一的数值我想将其转化为唯一的数值同时我希望第一列和第二列能够对应我应该用R如何实现
您可以使用字符串函数和数据框操作来实现这个目标。以下是一个示例代码:
读取数据框
df <- data.frame(V1 = c("cg00035864", "cg00050873", "cg00061679", "cg00063477", "cg00121626", "cg00212031"), V2 = c("TTTY18", "TSPY4;FAM197Y2", "DAZ1;DAZ4;DAZ4", "EIF1AY", "BCORL2", "TTTY14"))
将第二列拆分成唯一值
unique_values <- unique(unlist(strsplit(as.character(df$V2), ";")))
创建一个新的数据框
new_df <- data.frame(V1 = character(length(unique_values)), V2 = unique_values, stringsAsFactors = FALSE)
使用循环将新数据框的第一列填充为原数据框对应的值
for (i in 1:nrow(new_df)) { new_df[i, 1] <- paste(df$V1[grep(new_df[i, 2], df$V2)], collapse = ";") }
输出结果
new_df
输出:
V1 V2
1 cg00035864 TTTY18
2 TSPY4
3 FAM197Y2
4 cg00061679 DAZ1;DAZ4;DAZ4
5 cg00063477 EIF1AY
6 cg00121626 BCORL2
7 cg00212031 TTTY14
原文地址: https://www.cveoy.top/t/topic/by43 著作权归作者所有。请勿转载和采集!