RHCP_data
V1 V2 V3 V4
1 bar:kiedis from:01/01/1983 till:01/11/1986 color:vocals
2 bar:kiedis from:01/12/1986 till:end color:vocals
3 bar:flea from:01/01/1983 till:end color:bass
4 bar:smith from:03/12/1988 till:end color:drums
5 bar:klinghoffer from:01/10/2009 till:end color:lead
6 bar:slovak from:01/01/1983 till:01/12/1983 color:lead
7 bar:slovak from:01/02/1985 till:25/06/1988 color:lead
...
...
我試圖用tidyr
刪除變量名和這個偉大的工程:
separate(RHCP_data, "V1", into = c("a", "b"), sep = ":")[2]
b
1 kiedis
2 kiedis
3 flea
4 smith
5 klinghoffer
6 slovak
7 slovak
...
...
我想明白爲什麼這樣做不行。
for(i in 1:4){
RHCP_data[,i] <- separate(RHCP_data, paste0("V", i), into = c("a", "b"), sep = ":")[2][,1]
}
,我得到這個錯誤:
Error: Invalid column specification
顯然,該數據集是小,所以它不是在這種情況下一個問題,但我覺得有一些關於tidyr
或循環我不明白。任何幫助讚賞。
非常感謝。你知道爲什麼有兩個功能? –
對於這類問題的任何其他人,這是我在最後使用的那行'RHCP_data [,i] < - separate_(RHCP_data,paste0(「V」,i),into = c(「a」,「 b「),sep =」:「)[i + 1]' } –
這個目的有兩個功能:將列名作爲變量傳遞!順便說一句,您使用的for循環會在每次迭代時修改data.frame。當心這將會進入與指數衝突!最好考慮你的功能不是直接在你的原始數據幀上運行,而是創建另一個 - 就像我的建議一樣。 –