我想計算C#中卡方分佈的右尾概率。 Excel可以使用下面的代碼如何在C#中使用Excel公式#
= CHISQ.DIST.RT(100,4)
其中100是卡方和4是自由度做該計算。
我想在C#中使用這個函數來計算;我嘗試添加對「Microsoft.Office.Interop」的引用,但我無法找到使用它的方法!
我遇到了一些關於如何使用C#在Excel中進行公式化並在Excel中獲得結果的主題,但不幸的是這不是我所需要的;我需要在C#中進行計算並使用C#獲取結果。
我想計算C#中卡方分佈的右尾概率。 Excel可以使用下面的代碼如何在C#中使用Excel公式#
= CHISQ.DIST.RT(100,4)
其中100是卡方和4是自由度做該計算。
我想在C#中使用這個函數來計算;我嘗試添加對「Microsoft.Office.Interop」的引用,但我無法找到使用它的方法!
我遇到了一些關於如何使用C#在Excel中進行公式化並在Excel中獲得結果的主題,但不幸的是這不是我所需要的;我需要在C#中進行計算並使用C#獲取結果。
如果你只是想要一個類似於Excel計算的計算,你應該考慮@ korolewi的建議評論。
如果你有實際使用Excel的引擎,你可以做
我同意,如果你需要評估Excel公式,但不一定要用Excel本身(特別是如果這是在非交互式機器上完成的,例如服務器,儘管你沒有提到是否是這種情況),第三第四方工具是要走的路。盡我所知,Aspose.Cells不支持CHISQ.DIST.RT功能。 SpreadsheetGear 2012 for .NET支持CHISQ.DIST.RT以及Excel 2010中引入的所有其他功能。免責聲明:我爲SpreadsheetGear擔任技術支持工程師。 – 2013-05-13 22:41:18
我很欣賞SpreadsheetGear的建議。但是沒有任何方法使用公式而不使用任何第三方應用程序? – Hamed 2013-05-14 09:01:26
我很難考慮使用外部庫作爲第三方應用程序,所以是的。您對原始問題的評論中的鏈接指向實現它的方式。 http://www.codeproject.com/Articles/432194/How-to-Calculate-the-Chi-Squared-P-Value有你可以用來做的DLL。 – wilsjd 2013-05-14 17:07:48
要使用Microsoft.Office.Interop.Excel在C#代碼中使用「虛擬」Excel,您必須創建工作簿對象,在此工作簿上創建(至少)一個工作表對象 - 然後您可以使用互操作框中的Excel功能。
這個問題清楚地說明了「我需要在C#中進行計算並在C#中獲得結果」,並且使用Excel來完成它不是**他們需要的。當問題關於不使用Excel時創建Excel工作簿顯然不是答案。 – 2013-05-13 17:29:59
@KenWhite這肯定不是答案,但至少可以回答這個問題哦,需要做多少激烈的咕嚕工作才能調用工作表函數。結果:這不是理想的方法。 – Brad 2013-05-13 17:45:02
如果這不是一個答案,它不應該發佈爲一個。這可能是一個有用的評論,但答案應該這樣做 - 爲所問的問題提供一個答案。 – 2013-05-13 18:03:30
您是否使用Interop庫創建並優化了工作表? – 2013-05-13 17:02:27
這需要使用Excel嗎?您應該可以輕鬆將其移植到C#。 http://www.codeproject.com/Articles/432194/How-to-Calculate-the-Chi-Squared-P-Value – 2013-05-13 17:04:02
我之前檢查過這個代碼。我正在處理Chi-squq的ChIP-seq數據,比方說300!其相應的p值約爲2.00E-30!該代碼給出了這些數字的NaN或Infinity;但excel只是給出非常準確的結果,這就是爲什麼我更喜歡使用Excel。 – Hamed 2013-05-14 08:47:18