4
我有一個R數據框稱爲mydata
與具有一定年齡和一定的身高的人數。因此在之內的數據框我有變量mydata$ageto10
(= 10歲以下的人數),mydata$ageto20
(= 20歲以下的人數)等等,年齡35,42和65.身高(和其他一些變數)也是如此。如何在for循環中的數據框中創建變量?
我想創建新的變量,它指的是年齡在10到25歲之間,年齡在25到35歲,35到42歲和42到65歲之間的人數。因此,對於第一種情況,我想做的事:
mydata$age10to25 <- mydata$ageto25 - mydata$ageto10
這工作,但我想這樣做在所有範圍,以及高度和其他變量這樣做。必須有比複製粘貼40次更簡單的方法並手動更改變量名稱! :)
我認爲應該是這樣的:
for (i in c("age", "height"))
{
for (k in c(10,20,35,42, 65))
{
assign(paste("mydata$", i, k, "to", <<next k here>>, sep=""), get(paste("mydata$", i, <<next k here>>, , sep="")) - get(paste("mydata$", i, k, , sep=""))
}
}
但顯然,這並不工作(即使我填寫由手動K,似乎assign
命令並不意味着分配變量名到當前數據。
什麼是做到這一點的最好方法是什麼?
沒辦法,太棒了!謝謝! (PS:是的,來自Stata的難民;-)我每天都越來越愛着R) – user1780218
+1 for paste0,請不要忘記那個! –
ps:恭喜10k –