我覺得OP想知道如何用awk或由系統調用中插入變量來自R切割。要做到這一點
一種方法是使用sprintf
打造的命令,將飼料system
。
a <- "echo http://news.blogs.cnn.com/2013/04/15/explosions-near-finish-of-boston-marathon/?hpt=hp_t1"
### with Awk
cmd <- sprintf("echo %s | awk -F/ '{print $3}'", a)
system(cmd, intern = TRUE)
## [1] "news.blogs.cnn.com"
### Using cut
cmd2 <- sprintf("echo %s | cut -d/ -f3", a)
system(cmd2, intern = TRUE)
## [1] "news.blogs.cnn.com"
默認system
沒有矢量,所以如果你有一個以上的網址列,你不能直接採用同樣的方法。
所以,你需要 「矢量化」 的system
功能首先
system_vect <- Vectorize(system, vectorize.args = "command", USE.NAMES = FALSE)
b <- "http://www.r-bloggers.com/some-common-approaches-for-analyzing-likert-scales-and-other-categorical-data/"
cmd3 <- sprintf("echo %s | awk -F/ '{print $3}'", c(a, b))
system_vect(cmd3, intern = TRUE)
## [1] "news.blogs.cnn.com" "www.r-bloggers.com"
system(cmd3, intern = TRUE)
## [1] "news.blogs.cnn.com"
對於R,見[這個問題](http://stackoverflow.com/questions/17285439/does-r-have-any-包換解析出最部件對的一-URL/17286485#17286485)。 – Thomas