下午聰明的人。R - 基於匹配到列名的設置值
我有一個體面的大小的數據集(> 800k行),作爲一個例子,我已經拉出了20行2列的小樣本。首先,只有「主題」列填充了一個矢量,其他所有列都設置爲FALSE。
因爲它位於當前這將重新創建數據...
Topics <- c("E11,E31,E313,ECAT" , "E1,E20")
E1 <- c(FALSE, FALSE)
E11 <- c(FALSE, FALSE)
E20 <- c(FALSE, FALSE)
E30 <- c(FALSE, FALSE)
E31 <- c(FALSE, FALSE)
E100 <- c(FALSE, FALSE)
E300 <- c(FALSE, FALSE)
E313 <- c(FALSE, FALSE)
ECAT <- c(FALSE, FALSE)
df <- data.frame(Topics,E1,E11,E20,E30,E31,E100,E300,E313,ECAT)
哪位能給像...
Topics E1 E11 E20 E30 E31 E100 E300 E313 ECAT
E11,E31,E313,ECAT FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
E1,E20 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
我想設置相關的行,列TRUE其中,主題向量中的每個項目都有匹配。因此,它應該是這個樣子......
Topics E1 E11 E20 E30 E31 E100 E300 E313 ECAT
E11,E31,E313,ECAT FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE
E1,E20 TRUE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
到目前爲止,我已經完全失敗的工作這一個,但我懷疑它是這樣的:
- 分裂成話題用
strsplit
矢量
- 爲載體的每一項嘗試匹配
names(df)
- 當組匹配的行,列== TRUE
但是我嘗試過各種各樣,無法理解邏輯。任何人都可以爲我分解這件事嗎?
在預期的結果中,'E313'應該是'TRUE'而不是'E300' – akrun 2015-03-02 17:26:15