通过拆分列并选择最小值和最大值来子集dataframe

通过拆分列并选择最小值和最大值来子集dataframe,r,R,如何通过按分隔符拆分列并从各个列中选择最小值和最大值来对数据帧进行子集划分 在data.frame df1中,我想用分隔符“;”将列从2拆分为4。 从第2列中,仅选择第一个字符向量 从第3列中选择最小值,然后 从第4列中选择最大值 df1 <- Geneid Chr Start End CPA1 chr7;chr7;chr7;chr7 60837277;6

如何通过按分隔符拆分列并从各个列中选择最小值和最大值来对数据帧进行子集划分

在data.frame df1中,我想用分隔符“;”将列从2拆分为4。 从第2列中,仅选择第一个字符向量 从第3列中选择最小值,然后 从第4列中选择最大值

df1 <-  
     Geneid             Chr             Start                       End
    CPA1       chr7;chr7;chr7;chr7      60837277;60842119;60844209 60858738;60860094;60861430
    GUCY2D    chr17;chr17;chr17;chr17   60864066;60865166;60867516 60871561;60873263;60874538
    UBC       chr12;chr12;chr12;chr12   61053840;61054888;61056916 61090048;61090639;61092555    


df2 <-  
     Geneid   Chr    Start       End
    CPA1      chr7     60837277   60861430
    GUCY2D    chr17    60864066   60874538
    UBC       cr12     61053840   61092555  
df1使用
sub

x <- "     Geneid             Chr             Start                       End
     CPA1       chr7;chr7;chr7;chr7      60837277;60842119;60844209 60858738;60860094;60861430
     GUCY2D    chr17;chr17;chr17;chr17   60864066;60865166;60867516 60871561;60873263;60874538
    UBC       chr12;chr12;chr12;chr12   61053840;61054888;61056916 61090048;61090639;61092555    
 "
df1 <-read.table(text=x, header=T)
data.frame(Geneid=df1$Geneid,Chr=sub(";.*", "", df1$Chr), Start=sub(";.*", "", df1$Start), End=sub(".*;", "", df1$End))
#    Geneid   Chr    Start      End
# 1   CPA1  chr7 60837277 60861430
# 2 GUCY2D chr17 60864066 60874538
# 3    UBC chr12 61053840 61092555
使用
sub

x <- "     Geneid             Chr             Start                       End
     CPA1       chr7;chr7;chr7;chr7      60837277;60842119;60844209 60858738;60860094;60861430
     GUCY2D    chr17;chr17;chr17;chr17   60864066;60865166;60867516 60871561;60873263;60874538
    UBC       chr12;chr12;chr12;chr12   61053840;61054888;61056916 61090048;61090639;61092555    
 "
df1 <-read.table(text=x, header=T)
data.frame(Geneid=df1$Geneid,Chr=sub(";.*", "", df1$Chr), Start=sub(";.*", "", df1$Start), End=sub(".*;", "", df1$End))
#    Geneid   Chr    Start      End
# 1   CPA1  chr7 60837277 60861430
# 2 GUCY2D chr17 60864066 60874538
# 3    UBC chr12 61053840 61092555
使用
sub

x <- "     Geneid             Chr             Start                       End
     CPA1       chr7;chr7;chr7;chr7      60837277;60842119;60844209 60858738;60860094;60861430
     GUCY2D    chr17;chr17;chr17;chr17   60864066;60865166;60867516 60871561;60873263;60874538
    UBC       chr12;chr12;chr12;chr12   61053840;61054888;61056916 61090048;61090639;61092555    
 "
df1 <-read.table(text=x, header=T)
data.frame(Geneid=df1$Geneid,Chr=sub(";.*", "", df1$Chr), Start=sub(";.*", "", df1$Start), End=sub(".*;", "", df1$End))
#    Geneid   Chr    Start      End
# 1   CPA1  chr7 60837277 60861430
# 2 GUCY2D chr17 60864066 60874538
# 3    UBC chr12 61053840 61092555
使用
sub

x <- "     Geneid             Chr             Start                       End
     CPA1       chr7;chr7;chr7;chr7      60837277;60842119;60844209 60858738;60860094;60861430
     GUCY2D    chr17;chr17;chr17;chr17   60864066;60865166;60867516 60871561;60873263;60874538
    UBC       chr12;chr12;chr12;chr12   61053840;61054888;61056916 61090048;61090639;61092555    
 "
df1 <-read.table(text=x, header=T)
data.frame(Geneid=df1$Geneid,Chr=sub(";.*", "", df1$Chr), Start=sub(";.*", "", df1$Start), End=sub(".*;", "", df1$End))
#    Geneid   Chr    Start      End
# 1   CPA1  chr7 60837277 60861430
# 2 GUCY2D chr17 60864066 60874538
# 3    UBC chr12 61053840 61092555

您可以输出数据吗?您可以输出数据吗?您可以输出数据吗?您可以输出数据吗?如果
开始
结束
的值不符合顺序怎么办e、 g.
sub(;*,,,“3;2;1”)
不返回最小值。
另一方面,sapply(strsplit(“3;2;1”,“;”)函数(x)min(as.numeric(x))
工作正常。如果
Start
End
的值不符合顺序,该怎么办e、 g.
sub(;*,,,“3;2;1”)
不返回最小值。
另一方面,sapply(strsplit(“3;2;1”,“;”)函数(x)min(as.numeric(x))
工作正常。如果
Start
End
的值不符合顺序,该怎么办e、 g.
sub(;*,,,“3;2;1”)
不返回最小值。
另一方面,sapply(strsplit(“3;2;1”,“;”)函数(x)min(as.numeric(x))
工作正常。如果
Start
End
的值不符合顺序,该怎么办e、 g.
sub(;*,,,“3;2;1”)
不返回最小值。另一方面,sapply(strsplit(“3;2;1”,“;”))函数(x)min(as.numeric(x))
工作正常。