我有多個具有相同確切結構但內容不同的數據框/骰子。他們的名字是我能區分它們的唯一途徑。目標是將它們全部合併到一個數據框中,並帶有一個因子列。原始數據幀每個小時/測量都有一列,所以首先我想收集所有內容。使用其數據框名稱重命名列表中的數據框列
想象列mtcars DF的5至11是我的時間列。
mt1 <- mtcars
mt2 <- mtcars
mt3 <- mtcars
mt4 <- mtcars
mtlist <- list(m1 = mt1,
m2 = mt2,
m3 = mt3,
m4 = mt4)
require(tidyverse)
mtlist_tidy <- lapply(mtlist, function(x){
df <- x %>%
gather(exp, temp_name, 5:11)
return(df)
})
現在我卡住了。我需要在每個DFS的與DF即M1,M2的名字重新命名內mtlist_tidy的 「temp_name」 一欄,等:
> head(mtlist_tidy$m1)
mpg cyl disp hp exp temp_name
1 21.0 6 160 110 drat 3.90
2 21.0 6 160 110 drat 3.90
3 22.8 4 108 93 drat 3.85
4 21.4 6 258 110 drat 3.08
5 18.7 8 360 175 drat 3.15
6 18.1 6 225 105 drat 2.76
應該成爲
> head(mtlist_tidy$m1)
mpg cyl disp hp exp m1
1 21.0 6 160 110 drat 3.90
2 21.0 6 160 110 drat 3.90
3 22.8 4 108 93 drat 3.85
4 21.4 6 258 110 drat 3.08
5 18.7 8 360 175 drat 3.15
6 18.1 6 225 105 drat 2.76
然後purrr::reduce(mtlist_tidy, full_join)
會的工作,完成我的任務。
我想一定的解決方案只使用purrr
和lapply跳過,但我沒那麼熟悉卻又這個包。
你知道該函數'bind_rows'有一個選項來創建使用列表項的名稱是「ID」列?你的問題聽起來好像這可能是有用的。 –
是的!這是我需要的!我不知道這一點,謝謝。如果您將其作爲答案提交,我會接受它。 – mariachi
如果您喜歡,請隨時自行回答。可能還有一個重複的地方 –