2013-07-24 18 views
-1

我對R完全陌生。我嘗試閱讀參考文獻和一些很好的介紹,但我仍然很困惑。R在不同的向量中存儲不同的列以計算條件概率

我希望能做到以下幾點:

我公司生產的.txt文件看起來像以下:

area,energy 
1.41155882174e-05,1.0914586287e-11 
1.46893363946e-05,5.25011714434e-11 
1.39244046855e-05,1.57904991488e-10 
1.64155121046e-05,9.0815757601e-12 
1.85202830392e-05,8.3207522281e-11 
1.5256036289e-05,4.24756620609e-10 
1.82107587343e-05,0.0 

我有下面的命令來讀取R中的文件:

tbl <- read.csv("foo.txt",header=TRUE). 

生產:

> tbl 
      area  energy 
1 1.411559e-05 1.091459e-11 
2 1.468934e-05 5.250117e-11 
3 1.392440e-05 1.579050e-10 
4 1.641551e-05 9.081576e-12 
5 1.852028e-05 8.320752e-11 
6 1.525604e-05 4.247566e-10 
7 1.821076e-05 0.000000e+00 

現在我想將每列分別存儲在兩個不同的向量中,分別爲areaenergy

我想:

area <- c(tbl$first) 
energy <- c(tbl$second) 

,但它似乎並沒有工作。

我需要不同的向量(其中必須包括唯一的各列的數值數據),以便做到這一點:

> prob(energy, given = area), i.e. the conditional probability P(energy|area). 

然後繪製。你能幫我嗎?

+2

爲什麼'tbl $ first'而不是'tbl $ area'?你爲什麼用'c()'包裝它? – A5C1D2H2I1M1N2O1R2T1

+0

通過名稱調用數據框的列:'tbl $ area'和'tbl $ energy',或者位置:'tbl [,1]'和'tbl [,2]'。無需將它們作爲單獨的載體存儲以便稍後使用它們。 – Thomas

回答

1

正如@Ananda Mahto提到的那樣,問題在於你指的是列。

以「得到」在R數據幀的一列,你有幾種選擇:

DataFrameName$ColumnName 
DataFrameName[,ColumnNumber] 
DataFrameName[["ColumnName"]] 

因此,要獲得area,你會怎麼做:

tbl$area #or 
tbl[,1] #or 
tbl[["area"]] 

隨着第一個選項一般是首選(從我所見過的)。

順便說一句,你的「最終目標」,你不需要做任何的這樣:

with(tbl, prob(energy, given = area)) 

的伎倆。

+0

我建議在來到SO尋求幫助之前熟悉R FAQ,這是一個非常基礎的主題。 http://cran.r-project.org/doc/manuals/R-intro.pdf –

+0

我試過了。我收到以下消息:x $ probs中的錯誤:$運算符對原子向量無效 –

+0

分別運行'names(x)'和class(x)' –