2017-06-27 46 views
0

背景:我有我的數據集作爲一個CSV文件名爲D請加載到您的[R):從R中的已經子集的向量中找到對應的值?

D = read.csv("https://docs.google.com/uc?id=0B5V8AyEFBTmXWU40TUZGTURQWlU&export=download") 

我用下面的函數從我的數據獲取2量請SOURCE到ř):獲得

source("https://docs.google.com/uc?id=0B5V8AyEFBTmXWTk0LWhaMkY2b3M&export=download") 

的2倍量如下:

b = BF.d.pvalue(t = D$t.value, n1 = D$n1, n2 = D$n2) 
BF = b[1, ] ; p.value = b[2, ] 

子集詳細信息:我已經子集p.value.05更大及其相應的BF S:

pvalue.05_1 = p.value[p.value > .05] ; 
BF.pvalue.05_1 = BF[p.value > .05]` 

我進一步子集BF.pvalue.05_11/101/3之間:

BF.pvalue.05_1_.1_.33 = BF.pvalue.05_1[BF.pvalue.05_1 > 1/10 & BF.pvalue.05_1 <= 1/3] 

問題:現在我想知道如何找到相應的p.valueBF.pvalue.05_1_.1_.33以上?

回答

1

執行此操作的首選方法是將數據合併到dataframe,然後使用subset命令進行過濾。

myDf = data.frame(p = p.value, BF = BF) 
head(myDf) 
#    p   BF 
# 1 2.274873e-06 6.241835e+03 
# 2 3.811612e-02 1.736017e+00 
# 3 0.000000e+00 2.592434e+147 
# 4 0.000000e+00 1.982820e+130 
# 5 0.000000e+00 1.315152e+29 
# 6 9.992007e-15 4.442134e+11 

現在,只要你子集數據橫行,你將有機會獲得這兩個p值和BF值。

firstSubset = subset(myDf, p > .05) 
dim(firstSubset) 
# [1] 175 2 

secondSubset = subset(firstSubset, BF > .1 & BF < 1/3) 
dim(secondSubset) 
# [1] 76 2 

head(secondSubset) 
#   p  BF 
# 28 0.8518770 0.3131790 
# 34 0.9358011 0.2910234 
# 35 0.9302671 0.2911639 
# 52 0.6825720 0.3101911 
# 88 0.7201547 0.2770751 
# 96 0.6472360 0.2868055 

或者,您可以同時使用條件simultaniousely

secondSubset = subset(myDf, (BF > .1) & (BF < 1/3) & (p > .05)) 
+0

不,('A' *和*'B')的否定是(不是'A' *或*不'B' )。見[這裏](https://en.wikipedia.org/wiki/De_Morgan%27s_laws) –

+0

我只是說如果你否定('(p> .05)'和'BF> .1'),你會得到'(p <=。05)'或'BF <= .1')。你做什麼取決於你。 –

+0

如果您有其他問題,請提出一個新問題。這可能與我所假設的邏輯/數學更相關。所以看看[這篇文章](https://math.stackexchange.com/questions/320678/de-morgans-theorem-for-3-variables),然後在[math.stackexchange.com](https ://math.stackexchange.com) –