我是R的新手,我有像下面这样的制表符分隔文件
A1 HI_0004674; HI_0005524; HI_0016055; HI_0004672; HI_0004674; HI_0005524; HI_0005634; HI_0005730; HI_0005737; HI_0005829; HI_0005956; HI_0006468; HI_0007067; HI_0007228; HI_0007310; HI_0007411; HI_0007623; HI_0009267; HI_0016055; HI_0022416; HI_0030177; HI_0031397; HI_0031647; HI_0045475; HI_0045880; HI_0046331; HI_0048749; HI_0060810; HI_0001558; HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0019888; HI_0030177; HI_0030307; HI_0042127; HI_0043154; HI_0045732; HI_0046777; HI_0048511; HI_0071174;
HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0048511; HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0005654; HI_0005829; HI_0005886; HI_0006351; HI_0006355; HI_0006457; HI_0006468; HI_0006915; HI_0007165; HI_0008284; HI_0016055; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0051879; HI_0061077; HI_0071174; HI_1901796;
HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008013; HI_0008284; HI_0016055; HI_0016301; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0031519; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0006468; HI_0008284; HI_0019888; HI_0030307; HI_0045732; HI_0046777
A2 HI_0004674; HI_0005524; HI_0016055; HI_0004672; HI_0004674; HI_0005524; HI_0005634; HI_0005730; HI_0005737; HI_0005829; HI_0005956; HI_0006468; HI_0007067; HI_0007228; HI_0007310; HI_0007411; HI_0007623; HI_0009267; HI_0016055; HI_0022416; HI_0030177; HI_0031397; HI_0031647; HI_0045475; HI_0045880; HI_0046331; HI_0048749; HI_0060810; HI_0001558; HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0019888; HI_0030177; HI_0030307; HI_0042127; HI_0043154; HI_0045732; HI_0046777; HI_0048511; HI_0071174;
HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0048511; HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0005654; HI_0005829; HI_0005886; HI_0006351; HI_0006355; HI_0006457; HI_0006468; HI_0006915; HI_0007165; HI_0008284; HI_0016055; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0051879; HI_0061077; HI_0071174; HI_1901796;
HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008013; HI_0008284; HI_0016055; HI_0016301; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0031519; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0006468; HI_0008284; HI_0019888; HI_0030307; HI_0045732; HI_0046777
我想重新安排数据框,以便在每个ID之前添加新行条目,如下所示:
提前致谢。亲自指导我
答案 0 :(得分:3)
我们可以使用readLines
阅读数据,创建包含grep
和cumsum
的分组变量,然后使用paste
'''使用tapply
,然后read.table
用grp <- cumsum(!grepl("^(\\S+;|\\S+)$", lines[-1]))
read.table(text=c(lines[1], tapply(lines[-1], grp, FUN = paste,
collapse="")), header=TRUE, stringsAsFactors=FALSE)
# Id Values
#1 A1 Aj1;B3;C4;B23;C56;N23;G34;L78;Z65
#2 B2 Md1;K45;OK1;Nf3;P56;L76;A98
#3 C3 Q23;W12;Z56;K9v;j56;d34;H65
lines2 <- trimws(readLines("yourfile2.txt"))
grp <- cumsum(!grepl("^\\S+;", lines2))
read.csv(text=sub("\\s+", ",", tapply(lines2, grp, FUN = paste,
collapse="")), header= FALSE, stringsAsFactors=FALSE)
V1
1 A1
2 A2
V2
1 HI_0004674; HI_0005524; HI_0016055; HI_0004672; HI_0004674; HI_0005524; HI_0005634; HI_0005730; HI_0005737; HI_0005829; HI_0005956; HI_0006468; HI_0007067; HI_0007228; HI_0007310; HI_0007411; HI_0007623; HI_0009267; HI_0016055; HI_0022416; HI_0030177; HI_0031397; HI_0031647; HI_0045475; HI_0045880; HI_0046331; HI_0048749; HI_0060810; HI_0001558; HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0019888; HI_0030177; HI_0030307; HI_0042127; HI_0043154; HI_0045732; HI_0046777; HI_0048511; HI_0071174;HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0048511; HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0005654; HI_0005829; HI_0005886; HI_0006351; HI_0006355; HI_0006457; HI_0006468; HI_0006915; HI_0007165; HI_0008284; HI_0016055; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0051879; HI_0061077; HI_0071174; HI_1901796;HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008013; HI_0008284; HI_0016055; HI_0016301; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0031519; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0006468; HI_0008284; HI_0019888; HI_0030307; HI_0045732; HI_0046777
2 HI_0004674; HI_0005524; HI_0016055; HI_0004672; HI_0004674; HI_0005524; HI_0005634; HI_0005730; HI_0005737; HI_0005829; HI_0005956; HI_0006468; HI_0007067; HI_0007228; HI_0007310; HI_0007411; HI_0007623; HI_0009267; HI_0016055; HI_0022416; HI_0030177; HI_0031397; HI_0031647; HI_0045475; HI_0045880; HI_0046331; HI_0048749; HI_0060810; HI_0001558; HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0019888; HI_0030177; HI_0030307; HI_0042127; HI_0043154; HI_0045732; HI_0046777; HI_0048511; HI_0071174;HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0048511; HI_0004674; HI_0005524; HI_0005634; HI_0016055; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008284; HI_0016055; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0005634; HI_0005654; HI_0005829; HI_0005886; HI_0006351; HI_0006355; HI_0006457; HI_0006468; HI_0006915; HI_0007165; HI_0008284; HI_0016055; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0051879; HI_0061077; HI_0071174; HI_1901796;HI_0004674; HI_0005524; HI_0005634; HI_0005956; HI_0006351; HI_0006355; HI_0006468; HI_0006915; HI_0008013; HI_0008284; HI_0016055; HI_0016301; HI_0016580; HI_0016581; HI_0019888; HI_0030177; HI_0030307; HI_0031519; HI_0043154; HI_0045732; HI_0046777; HI_0047485; HI_0048511; HI_0071174; HI_0004674; HI_0005524; HI_0006468; HI_0008284; HI_0019888; HI_0030307; HI_0045732; HI_0046777
对于新数据集
lines <- trimws(readLines("yourfile.txt"))
lines <- trimws(readLines(textConnection("Id Values
A1 Aj1;B3;C4;
B23;C56;N23;G34;
L78;Z65
B2 Md1;K45;OK1;
Nf3;P56;L76;
A98
C3 Q23;W12;Z56;
K9v;j56;d34;
H65")))
或者
library(sp)
library(raster)
lat1<- c(-0.755488889, -0.724580556)
long1<- c(36.44060833, 36.43528056)
latlon1<- cbind(lat1,long1)
crdref <- CRS('+proj=longlat +datum=WGS84')
lns1_YGLV <- spLines(latlon1, crs=crdref)
lns1_YGLV
plot(lns1_YGLV)
lat2<- c(-0.8396, -0.735166667)
long2<- c(36.362475, 36.59591667)
latlong2<- cbind(lat2,long2)
crdref <- CRS('+proj=longlat +datum=WGS84')
lns2_SUGT <- spLines(latlong2, crs=crdref)
lns2_SUGT
plot(lns2_SUGT)
N<- shapefile("path\\file.shp")
plot(N)