我有一个很大的数据帧,其列名如下。我还没有尝试使用任何数据,只是使用列名。
菌株a_1_batch1 | 菌株b_1_bacth1 | 菌株C_1_bacth2菌株C_2_bacth2 | 菌株D_a_1_bacth1 | >菌株D_b_1_bacth1
---|
我认为如果你在"下划线、数字、下划线";它为您的上述陈述提供了一个解决方案。这确实消除了数字和相关信息。这有关系吗?
names <- c("strainA_1_batch1", "strainA_2_batch2", "strainB_1_batch1", "strainC_1_batch2", "strainC_2_batch2",
"strainD_a_1_batch1", "strainD_b_1_batch1")
#split at the underscore, digit and underscore
splitList <- strsplit(names, "_\d_")
#convert to dataframe
df <-data.frame(t(as.data.frame.list(splitList)))
#clean up data.frame
rownames(df)<-NULL
names(df)<-c("Strain", "Batch")
df
#report
table(df$Strain)
table(df$Batch)
另一种选择是将数字两侧的下划线替换为"0"(或其他角色(,然后在空间上拆分。
names<-gsub("_(\d)_", " \1 ", names)