我嘗試使用stringr
中的str_match
,它適用於一個簡單的測試示例。不過,這並不對數據進行工作,從rtweet回來:使用str_match從rtweet數據幀中的字段
這是一個虛構的數據幀,它確實工作:
test <- data.frame(c(1), c('something'))
names(test) <- c('value', 'item')
subset(test, !anyNA(str_match(item,'thing')))
,給出了一個匹配和不過濾項目出來,產生:
value item
1 1 something
將其更改爲別的東西:
subset(test, !anyNA(str_match(item,'thang')))
。 ..filters項目出來,符合市場預期:
[1] value item
<0 rows> (or 0-length row.names)
但在來自rtweet回來似乎並沒有能夠在數據幀中的「mentions_screen_name」字段以子集是這樣的。其他邏輯操作(如mentions_screen_name == ...
)可用於選擇列。但!anyNA(str_match(mentions_screen_name, '...'))
將不起作用,即使您在該字段的確切文字上匹配。
我想發送看起來不能被 str_match選中的數據。但獲取數據的腳本使用的是rtweet,而 需要Twitter應用程序憑據。
像我說的簡單的例子工程,雖然。 rtweet數據有什麼不同嗎?
'str_match'用於提取實際的匹配,但我認爲你應該使用'str_detect';如果模式在字符串中,它會返回一個邏輯結果。這樣你就不必使用'!anyNA'來查看是否匹配。 –
@MattMills有沒有什麼情況下'str_detect(haystack,needle)'和'!anyNA(str_match(haystack,needle))'會給出不同的結果?我不是R程序員,但親自看到了這個案例(並建議詢問StackOverflow)。無論如何,如果您想通過複製/粘貼將mentions_screen_name字段取出並將其用作「乾草堆」,它可以在孤立的調用中使用。然而,不知怎的,將它作爲「子集」操作的邏輯並沒有,而對於該字符串的文字相等性測試卻是如此。 : - /在這種情況下,某人會做什麼樣的健康檢查? – HostileFork