2012-12-26 57 views
0

我是R新手,需要在R(動態概率)中進行時間序列橫截面(TSCS)分析。我知道如何運行模型,但我需要告訴R我正在處理TSCS數據。設置橫截面數據的時間序列R

我有44個國家的數據(國家都在數據集中以數字和字符形式編碼),併爲每個國家52年。 E.g:

Angola 1950 
Angola 1951 
. 
. 
. 
Benin 1950 
Benin 1951 

我已經找到了ts()命令,但我不知道我是否已經正確地使用它。我的代碼到目前爲止是:

outdata50time <- ts(data=outdata50, start=1950, end=2002) 

這樣做的伎倆?還是我需要不同的國家班?

感謝您的幫助!

+0

我很困惑你的問題。你期望有什麼?當你打字的時候(outdata50time)你有什麼? – agstudy

+0

如果我輸入「head(outdata50time)」,那麼我得到 [1] NA NA NA NA NA NA。我習慣於在STATA中講述我使用時間序列數據的計劃。這就是我想要做的。我只是很困惑我在ts()命令中提供了什麼,才能正確地將它設置爲TSCS數據。 –

+0

我從dput(outdata50)獲得的輸出很大,甚至沒有完全顯示。我有44個橫斷面和52年的分析。在運行我的動態概率模型之前,我現在要告訴R的是,我有時間序列,橫截面數據,「年」是我的時間變量,「國家號」是我的橫截面變量。或者我不需要在R中這樣做? –

回答

1

加載數據集(我加了一些數據指向數據的問題集):

library(data.table) 
test <- data.table(structure(list(Country = structure(c(1L, 1L, 2L, 2L), .Label = c("Angola", 
"Benin"), class = "factor"), Year = c(1950L, 1951L, 1950L, 1951L 
), Data = c(23L, 24L, 45L, 64L)), .Names = c("Country", "Year", 
"Data"), class = "data.frame", row.names = c(NA, -4L))) 

一旦你得到了這個,我會建立某種形式的循環來提取與每個數據國家。一個國家的例子如下:

ts <- ts(test[Country=="Benin"]$Data, start=(1950), frequency=1) 
ts 
Time Series: 
Start = 1950 
End = 1951 
Frequency = 1 
[1] 45 64 
+0

嘿,非常感謝您的回覆!數據上升到2002年,但這應該很容易完成。 1L,2L等代表什麼?對不起,正如我所說我對R仍然是新手。再次感謝你的時間!非常感激! –

+0

@FlorianReiche'structure()'將函數'dput'的輸出放在一行,用於在文本中包含數據。這1L是編碼的語法的一部分。更重要的是,當你輸入'test'時,你會得到一張你熟悉的表格。代碼只是在第一列的基礎上分離值;確保這些年份正確訂購。 – Jochem

+0

好的,太棒了,我想我現在可以完成所有44個橫截面的代碼。在我這樣做之前最後一個問題:「Data = c(23L,24L,45L,64L)」位有什麼作用?我將如何改變超過兩個國家?同樣,我將如何調整row.names?再次感謝!!! –