2012-11-01 91 views
0

我對R很陌生,我有一個簡單的問題,我無法弄清楚一個簡單的問題。 我想兩個邏輯語句組合,即我想從我的分析 排除兩列,僅僅排除一個值的代碼工作正常,看起來像這樣:Combine Logical Operators

df[ colnames(df) != "Total.Population", function(x){ x/df$Total.Population *1000 }

因此,除了人口我也想從我的分析中排除列地理編碼。我嘗試了很多不同勢東西一樣

df[ colnames(df) != "Total.Population"&&"Geocodes", function(x){ x/df$Total.Population *1000 }

,但我不能把它做工作對我來說... 所以任何幫助將是巨大的。 Thx

+1

'&&'並不意味着'AND AND'按照你想要的方式。您正在尋找'%in%' - 您的代碼目前無法重現。 – mnel

+0

你錯過了關閉']',甚至超出了你的代碼目前沒有任何意義。 'function(x)'返回一個函數,而不是該函數的值。 –

+0

這只是代碼的一小部分。因此整個代碼如下所示: 'agriculture <-read.table(「C:\\ Users \\ etc ...) 附加(農業) df <-data.frame(農業) df.per.capita < - [!colnames(DF)= 「Total.Population」 %中% 「地理編碼」] as.data.frame( \t sapply( \t \t DF,函數(X){X/DF $ Total.Population * 1000 } \t \t) \t)\t 分離(農業) ' – Joschi

回答

1

你沒有結束]。請編輯。至於邏輯運算符:你想選擇某些列索引,但你已經「鎖定」了比較。這樣做:

Rgames> foo 
    one two three four five 
1 1 5  9 13 17 
2 2 6 10 14 18 
3 3 7 11 15 19 
4 4 8 12 16 20 

Rgames> foo[ (colnames(foo) != "three")&(colnames(foo)!='two')] 
one four five 
1 1 13 17 
2 2 14 18 
3 3 15 19 
4 4 16 20 
+0

好的。這個解決了!對於解釋非常感謝! – Joschi