我有以下錯誤:
a <- system("awk '{ if (/foo/) print "2","\t",$0; else print "1","\t",$0; }' file",intern=true)
但是,我收到以下錯誤:
Error: unexpected numeric constant in "a \<- system("awk '{ if (/foo/) print "2"
我想知道我是否必須逃避內部撇號但不知道如何?!
uj5u.com熱心網友回復:
代碼中有幾個錯誤。下面的代碼對我有用,并且(根據您的評論)回傳一個兩列資料框:
a <- system("awk '{ if (/foo/) print 2 \"\t\" $0; else print 1 \"\t\" $0; }' file", intern = TRUE)
DF = read.table(text = a, sep = "\t")
DF
#> V1 V2
#> 1 2 foo
#> 2 1 bar
#> 3 1 asd
summary(DF)
#> V1 V2
#> Min. :1.000 Length:3
#> 1st Qu.:1.000 Class :character
#> Median :1.000 Mode :character
#> Mean :1.333
#> 3rd Qu.:1.500
#> Max. :2.000
由reprex 包于 2022-03-23 創建(v2.0.1)
uj5u.com熱心網友回復:
我的分隔符有錯誤,也想保留標題。我隨后做了以下操作,因為我想更改順序。
file:
Header1 Header2
foo bar
bar bar
foo foo
然后我運行命令:
a <- system("awk '{ if (/foo/) print 2 \"\t\" $0; else print 1 \"\t\" $0; }' file | awk '{print $2,$3,$1}' ", intern = TRUE)
DF = read.table(text = a, sep = " ", header=TRUE)
colnames(DF)[3] <- "Header3"
現在輸出:
DF
Header1 Header2 Header3
foo bar 2
bar bar 1
foo foo 2
現在一切正常。謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449981.html
