我有一段要預處理的文本資料,該資料的形式為:
[num|num|<String>]
但是,"|"<String> 中有空格、逗號和。因此,不可能使用"|". 檢索資料時,如何限制分割數或讀取行數?我嘗試使用flush = TRUE,但無法使用,因為它洗掉了 <String> 的某些部分。
uj5u.com熱心網友回復:
你可能有這樣的事情。
123|1234|foo, bar | baz
021|3874|foo, bar | baz
123|1234|foo, bar | baz
123|1234|foo, bar | baz
你可以使用一個回顧后,如果有一些(?<=\\d)前"|"。
readLines('tmp.txt') |>
strsplit('(?<=\\d)\\|', perl=TRUE)
# [[1]]
# [1] "123" "1234" "foo, bar | baz"
#
# [[2]]
# [1] "021" "3874" "foo, bar | baz"
#
# [[3]]
# [1] "123" "1234" "foo, bar | baz"
#
# [[4]]
# [1] "123" "1234" "foo, bar | baz"
注:使用R >= 4.1。
資料:
write(file='tmp.txt',
'123|1234|foo, bar | baz
021|3874|foo, bar | baz
123|1234|foo, bar | baz
123|1234|foo, bar | baz'
)
uj5u.com熱心網友回復:
遵循jay.sf's answer 的類似想法(并從那里借用資料)
read.table(
text = gsub(
"(?<=\\d)\\|", "\t",
readLines("tmp.txt"),
perl = TRUE
),
sep = "\t"
)
這使
V1 V2 V3
1 123 1234 foo, bar | baz
2 21 3874 foo, bar | baz
3 123 1234 foo, bar | baz
4 123 1234 foo, bar | baz
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/403207.html
標籤:
上一篇:點擊actionButton()后在模塊化閃亮應用程式中隱藏影像
下一篇:資料表R中日期列的每日平均值
