我有分隔字符串的兩列的數據幀之間共享例如:查找字符串2分數據幀列
a b c
1 a, b, c, d a, d a, d
2 a, c a a
3 b, d a, d d
我已經嘗試了一些方法,涉及將字符串轉換爲列表並返回,但我似乎並沒有能夠得到它的權利。
使用dplyr
我第一次嘗試使用:
df <- df %>%
mutate(c=paste(c(intersect(unlist(strsplit(a, split=", ")), unlist(strsplit(b, split=", "))))))
這就造成了一個錯誤:
Error in eval(substitute(expr), envir, enclos) : wrong result size (2), expected 3 or 1
除了沒有返回所需的字符串,這也似乎返回相同的結果(通過將mutate
以上的功能從paste
更改爲length
來驗證):
df %>%
mutate(c=length(c(intersect(unlist(strsplit(a, split=", ")), unlist(strsplit(b, split=", "))))))
a b c
1 a, b, c, d a, d 2
2 a, c a 2
3 b, d a, d 2
這讓我擔心,我的所有行的結果組合成一個結果和重複。
要嘗試使用交叉功能之前,把事情簡單化,我試圖給我的字符串轉換成列表:
df %>% mutate(a_list=list(unlist(strsplit(a, split=", "))))
但收到的錯誤:
Error in eval(substitute(expr), envir, enclos) : not compatible with STRSXP
這使得懷疑,如果在數據幀列表與tidyverse
兼容,因此,如果我需要採取完全不同的方法。
對如何處理找到R中的兩個數據幀列之間共享串的問題任何意見(以及任何深入瞭解如何對待列表等中的數據幀的值)將受到歡迎。
這是偉大的,謝謝你,我也許有點過度熱衷於使用dplyr。 – MrGraeme