我有如下的下方多頭格局數據幀:移調/重塑數據框中沒有「timevar」從長到寬幅
Name MedName
Name1 atenolol 25mg
Name1 aspirin 81mg
Name1 sildenafil 100mg
Name2 atenolol 50mg
Name2 enalapril 20mg
,並希望得到以下(我不在乎,如果我能得到列被命名這種方式,只是想在這個格式的數據):通過這個非常網站,我已經成爲familiarish與重塑/ reshape2包
Name medication1 medication2 medication3
Name1 atenolol 25mg aspirin 81mg sildenafil 100mg
Name2 atenolol 50mg enalapril 20mg NA
,並通過多次嘗試都去嘗試得到這個工作但迄今失敗。
當我嘗試dcast(dataframe, Name ~ MedName, value.var='MedName')
我只是得到了一堆屬於藥物名稱的標誌列(即獲得轉置值是0或1)例如:
Name atenolol 25mg aspirin 81mg
Name1 1 1
Name2 0 0
我也嘗試了dcast(dataset, Name ~ variable)
我融化後數據集,然而,這只是吐出以下(只計算每個人多少吃藥了):
Name MedName
Name1 3
name2 2
最後,我試圖融化的數據,然後重塑使用idvar="Name"
timevar="variable"
(所有這些都只是Mednam es),但是這似乎並不適合我的問題,因爲如果有多個匹配的idvar,重塑只需要第一個MedName並忽略其餘。
有誰知道如何使用重塑或其他R功能來做到這一點?我意識到可能有一種方法可以以更加混亂的方式執行此操作,其中一些for循環和條件可以基本拆分並重新粘貼數據,但我希望有更簡單的解決方案。非常感謝!
感謝您的幫助,這工作。我的一個擔心列,是在我的實際數據集中,我有一個不斷變化的數字和藥物名稱,所以聲明MedName = c(所有名稱)可能會有點多,但我感謝幫助,並會可能在其他問題上使用這種方法。 – Hotamd6
@ Hotamd6 - 無需手動指定所有名稱 - 只需在數據集名稱(如gsub(「MedName。」,「medication」,names(reshapedtestdata),fixed = TRUE))上進行查找和替換即可獲得與上面的@mnel相同的結果。 – thelatemail