R对输入执行grep

R对输入执行grep,r,R,我有一个包含以下内容的文件 3594 -124.049541 44.429077 -123.381222 44.530192 -123.479913 44.625517 -123.578917 44.720704 END 3595 -123.103772 45.009223 -122.427717 45.101578 -122.525757 45.198252 -122.624122 45.294789 END 3676 -122.989567 44.147495 -122.323

我有一个包含以下内容的文件

3594 -124.049541 44.429077
 -123.381222 44.530192
 -123.479913 44.625517
 -123.578917 44.720704
END
3595 -123.103772 45.009223
 -122.427717 45.101578
 -122.525757 45.198252
 -122.624122 45.294789
END
3676 -122.989567 44.147495
 -122.323040 44.238368
 -122.419523 44.335217
 -122.516322 44.431923
END
END
我想把这个文件读入R,但我只想保留缩进的行

对于
grep
,这似乎是一项不错的工作,但我不确定如何使其工作


有什么想法吗?

您可以试试,其中
file.txt
包含您的数据:

a <- readLines("file.txt")
a <- a[grepl("^ ", a)]
do.call("rbind", strsplit(a, " "))[, -1]
       [,1]          [,2]       
  [1,] "-123.381222" "44.530192"
  [2,] "-123.479913" "44.625517"
  [3,] "-123.578917" "44.720704"
  [4,] "-122.427717" "45.101578"
  [5,] "-122.525757" "45.198252"
  [6,] "-122.624122" "45.294789"
  [7,] "-122.323040" "44.238368"
  [8,] "-122.419523" "44.335217"
  [9,] "-122.516322" "44.431923"

# Alternatively you can get the data by read.table() as suggested by @Josh
read.table(textConnection(a))
         V1       V2
1 -123.3812 44.53019
2 -123.4799 44.62552
3 -123.5789 44.72070
4 -122.4277 45.10158
5 -122.5258 45.19825
6 -122.6241 45.29479
7 -122.3230 44.23837
8 -122.4195 44.33522
9 -122.5163 44.43192

a您可以尝试,其中
file.txt
包含您的数据:

a <- readLines("file.txt")
a <- a[grepl("^ ", a)]
do.call("rbind", strsplit(a, " "))[, -1]
       [,1]          [,2]       
  [1,] "-123.381222" "44.530192"
  [2,] "-123.479913" "44.625517"
  [3,] "-123.578917" "44.720704"
  [4,] "-122.427717" "45.101578"
  [5,] "-122.525757" "45.198252"
  [6,] "-122.624122" "45.294789"
  [7,] "-122.323040" "44.238368"
  [8,] "-122.419523" "44.335217"
  [9,] "-122.516322" "44.431923"

# Alternatively you can get the data by read.table() as suggested by @Josh
read.table(textConnection(a))
         V1       V2
1 -123.3812 44.53019
2 -123.4799 44.62552
3 -123.5789 44.72070
4 -122.4277 45.10158
5 -122.5258 45.19825
6 -122.6241 45.29479
7 -122.3230 44.23837
8 -122.4195 44.33522
9 -122.5163 44.43192

一个不错的例子。或者,要获得包含两个数字列的数据帧,只需将上面的最后一行更改为
read.table(textConnection(a))
.Nice。或者,要获得包含两个数字列的数据帧,只需将上面的最后一行更改为
read.table(textConnection(a))