動態變化的數據類型我有一組屬於多個國家,包括3個變量(年,AI,OAD)的數據幀。爲津巴布韋如下圖所示的例子中,用於數據幀
>str(dframe_Zimbabwe_1955_1970)
'data.frame': 16 obs. of 3 variables:
$ year: chr "1955" "1956" "1957" "1958" ...
$ AI : chr "11.61568161" "11.34114927" "11.23639317" "11.18841409" ...
$ OAD : chr "5.740789488" "5.775882473" "5.800441036" "5.822536579" ...
我試圖在數據幀來改變變量的數據類型,以下面這樣我可以使用lm(dframe_Zimbabwe_1955_1970$AI ~ dframe_Zimbabwe_1955_1970$year)
的線性擬合的模型。
>str(dframe_Zimbabwe_1955_1970)
'data.frame': 16 obs. of 3 variables:
$ year: int 1955 1956 1957 1958 ...
$ AI : num 11.61568161 11.34114927 11.23639317 11.18841409 ...
$ OAD : num 5.740789488 5.775882473 5.800441036 5.822536579 ...
的下面能夠從字符(CHR)改變AI到數字(NUM)靜態代碼。
dframe_Zimbabwe_1955_1970$AI <- as.numeric(dframe_Zimbabwe_1955_1970$AI)
然而,當我試圖爲下面的代碼自動完成,AI仍然作爲字符(CHR)
countries <- c('Zimbabwe', 'Afghanistan', ...)
for (country in countries) {
assign(paste('dframe_',country,'_1955_1970$AI', sep=''), eval(parse(text = paste('as.numeric(dframe_',country,'_1955_1970$AI)', sep=''))))
}
你能不能指點我可能做錯了?
謝謝。
有沒有'assign(... $ var_name,value)'函數。 –
你的每個數據框看起來都很小。你爲什麼不把它們堆疊成一個單一的數據框?那麼你不需要這個複雜的語法。 –
分配(的右側)會產生如下的值, 的eval(解析(文本=膏( 'as.numeric(DFRAME _',國家, '_ 1955_1970 $ AI)',九月= ''))) [1 ] 11.615682 11.341149 11.236393 11.188414 11.108672 10.973661 10.807027 10.573861 10.326624 10.131940 10.010619 [12] 9.809184 9.676503 9.592671 9.523880 9.455642 –