【发布时间】:2012-11-01 11:05:32
【问题描述】:
我对 R 很陌生,我有一个简单的问题,我就是想不出一个简单的问题。 我想组合两个逻辑语句,即我想从分析中排除两列 要仅排除一个值,代码可以正常工作,如下所示:
df[ colnames(df) != "Total.Population", function(x){ x/df$Total.Population *1000 }
所以除了人口之外,我还想从我的分析中排除 Geocodes 列。我尝试了很多不同的东西,比如
df[ colnames(df) != "Total.Population"&&"Geocodes", function(x){ x/df$Total.Population *1000 }
但我无法完成它为我工作...... 所以任何帮助都会很棒。谢谢
【问题讨论】:
-
&&并不意味着您想要的AND AND。您正在寻找%in%-- 您的代码目前无法重现。 -
你错过了一个结束
],甚至超出了你的代码目前没有意义。function(x)返回一个函数,而不是该函数的值。 -
这只是代码的一小部分。所以整个代码看起来像这样:
agriculture <-read.table ("C:\\Users\\etc….) attach(agriculture) df<-data.frame(agriculture) df.per.capita <- as.data.frame( sapply( df[ colnames(df) != "Total.Population" %in% "Geocode"], function(x){ x/df$Total.Population *1000 } ) ) detach(agriculture) -
但是 %in% 也不起作用。没有错误警告,但仍然处理了两列
-
你需要做
df[ !colnames(df) %in%c('name1','name2')]
标签: r logical-operators