我在使用mutate{dplyr}
函數時遇到問題,目的是爲數據框添加新列。我想要一個新的字段爲字符類型,並且由其他列(也是字符類型)的排序字的「concat」組成。例如,對於下面的數據幀:R中的dplyr突變 - 添加列作爲連續列
> library(datasets)
> states.df <- data.frame(name = as.character(state.name),
+ region = as.character(state.region),
+ division = as.character(state.division))
>
> head(states.df, 3)
name region division
1 Alabama South East South Central
2 Alaska West Pacific
3 Arizona West Mountain
我想用下面的第一個元素得到一個新的列:
"Alamaba_East South Central_South"
我嘗試這樣做:
mutate(states.df,
concated_column = paste0(sort(name, region, division), collapse="_"))
但我收到錯誤:
Error in sort(1:50, c(2L, 4L, 4L, 2L, 4L, 4L, 1L, 2L, 2L, 2L, 4L, 4L, :
'decreasing' must be a length-1 logical vector.
Did you intend to set 'partial'?
提前感謝您的幫助!
謝謝保羅的關注!我遵循你的建議,它可以處理你的代碼,但是當我嘗試*排序*這些詞(我的意思是:粘貼(排序(名稱,區域,分區),sep ='_'))) 。 (在我的描述中與上面相同的錯誤)。 –
您必須仔細閱讀'sort'的文檔,'sort'將一個向量作爲輸入,並返回排序後的版本。你餵它三個向量,這不是你應該如何使用排序。你想要做什麼? –
哦,好的,我明白了(謝謝你的解釋!)。在我的真實情況下,我有一個包含3列的數據集。 3列代表來自一組*行動的3個行動。我不再關心這3個動作如何被採用的順序,所以我想將它們轉換成一個變量 - 這個變量的值將保留這3個動作的名稱,並且'sort'不打算處理這個命令。 –