我想分割一個字符串,然後將它傳遞給列表。在R中拆分字符串並分配給列表
對於前:
string <- "hi hello"
分開後,並把到一個名爲l
列表,然後l[1]
應該給我hi
和l[2]
應該給我hello
。
試圖很難搜索先前的問題,但找不到這個。
我想分割一個字符串,然後將它傳遞給列表。在R中拆分字符串並分配給列表
對於前:
string <- "hi hello"
分開後,並把到一個名爲l
列表,然後l[1]
應該給我hi
和l[2]
應該給我hello
。
試圖很難搜索先前的問題,但找不到這個。
在這裏,你有它
> l <- strsplit(string, " ")[[1]]
[1] "hi" "hello"
> l[1]
[1] "hi"
> l[2]
[1] "hello"
最後的意思是什麼?[[1]]? – 2014-08-29 15:59:26
@AvinashRaj,'strsplit'是矢量化的,並返回一個「list」,其長度與輸入向量相同,並且在該列表項中有分割項。由於這是一個單獨的向量被拆分,爲了將其平鋪到一個單獨的向量中,您可以直接使用'[[1]]'來訪問它。 – A5C1D2H2I1M1N2O1R2T1 2014-08-29 16:04:56
感謝您的解釋... – 2014-08-29 16:49:32
對有分隔的字符串成單獨的列表。
string <- "hi hello"
l <- lapply(unlist(strsplit(string, split= " ")), FUN = function(x) x)
[[1]]
[1] "hi"
[[2]]
[1] "hello"
嗯...爲什麼不只是'as.list(unlist(strsplit(string,「」)))'如果這是您認爲他們的輸出? – A5C1D2H2I1M1N2O1R2T1 2014-08-29 15:57:27
@AnandaMahto,夠公平,代碼稍短但結果相同。 Mind只是去了'lapply',但'as.list'更簡潔。 – cdeterman 2014-08-29 15:59:10
謝謝大家的答案。 – 2014-08-30 02:23:01
哦,究竟發生了什麼....
要採取完全不同的方法,因爲你是在分裂的空間,你也可以很容易地使用scan
:
l <- scan(what = "", text = string)
# Read 2 items
l[1]
# [1] "hi"
l[2]
# [1] "hello"
注意如果這是你想要的,你的術語是關閉的。在R中,這是一個vector
。如果您需要list
,請將scan
換成as.list
。
這是另一種選擇。而不是split
婷,匹配你想要的。
> x <- 'hi hello'
> l <- regmatches(x, gregexpr('\\S+', x))[[1]]
> l[1]
## [1] "hi"
> l[2]
## [1] "hello"
嘗試:
l = unlist(strsplit(string, ' '))
l[1]
[1] "hi"
l[2]
[1] "hello"
現在,這些答案已經失去控制...... – A5C1D2H2I1M1N2O1R2T1 2014-08-29 16:16:58
OP只需要一個給出l [1]和l [2]的適當值的對象l。 – rnso 2014-08-29 16:19:24
這已經被覆蓋在這個網站無數次:'→< - strsplit(字符串,「「)[[1]]'應該這樣做。 – A5C1D2H2I1M1N2O1R2T1 2014-08-29 15:52:24