小编zx8*_*754的帖子

确定数组是否包含值

我需要确定数组中是否存在值.

我使用以下功能:

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i] == obj) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

上面的函数总是返回false.

数组值和函数调用如下:

arrValues = ["Sam","Great", "Sample", "High"]
alert(arrValues.contains("Sam"));
Run Code Online (Sandbox Code Playgroud)

javascript arrays contains

1300
推荐指数
15
解决办法
159万
查看次数

分组函数(tapply,by,aggregate)和*apply系列

每当我想在R中做一些"map"py时,我通常会尝试使用一个函数 apply家族中.

但是,我从来没有完全理解它们之间的区别 - 如何{ sapply,lapply等}将函数应用于输入/分组输入,输出将是什么样的,甚至输入可以是什么 - 所以我经常只要仔细检查它们,直到我得到我想要的东西.

有人可以解释如何使用哪一个?

我当前(可能不正确/不完整)的理解是......

  1. sapply(vec, f):输入是一个向量.output是一个向量/矩阵,其中element if(vec[i])一个矩阵,如果f有一个多元素输出

  2. lapply(vec, f):相同sapply,但输出是一个列表?

  3. apply(matrix, 1/2, f):输入是一个矩阵.output是一个向量,其中element i是f(矩阵的row/col i)
  4. tapply(vector, grouping, f):output是一个矩阵/数组,其中矩阵/数组中的元素是向量f分组g的值,和g被推送到行/列名称
  5. by(dataframe, grouping, f):让我们g成为一个分组.适用f于组/数据框的每一列.漂亮打印分组和f每列的值.
  6. aggregate(matrix, grouping, f):类似于by,但不是将输出打印得很漂亮,而是将所有内容都粘贴到数据帧中.

侧问题:我还没有学会plyr或重塑-将plyrreshape更换所有这些完全?

r lapply sapply r-faq tapply

1011
推荐指数
10
解决办法
39万
查看次数

483
推荐指数
7
解决办法
61万
查看次数

如何将两个字符串连接起来?

如何连接(合并,组合)两个值?例如,我有:

tmp = cbind("GAD", "AB")
tmp
#      [,1]  [,2]
# [1,] "GAD" "AB"
Run Code Online (Sandbox Code Playgroud)

我的目标是将"tmp"中的两个值连接到一个字符串:

tmp_new = "GAD,AB"
Run Code Online (Sandbox Code Playgroud)

哪个功能可以为我做到这一点?

r string-concatenation r-faq

358
推荐指数
9
解决办法
61万
查看次数

如何修剪前导和尾随空格?

我在data.frame中遇到了前导和尾随空格的麻烦.例如,我想看看在特定rowdata.frame基础上有一定的条件:

> myDummy[myDummy$country == c("Austria"),c(1,2,3:7,19)] 

[1] codeHelper     country        dummyLI    dummyLMI       dummyUMI       
[6] dummyHInonOECD dummyHIOECD    dummyOECD      
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我没有得到预期的产量,因为奥地利显然存在于我的国家data.frame.在查看我的代码历史并试图弄清楚出了什么问题后,我尝试了:

> myDummy[myDummy$country == c("Austria "),c(1,2,3:7,19)]
   codeHelper  country dummyLI dummyLMI dummyUMI dummyHInonOECD dummyHIOECD
18        AUT Austria        0        0        0              0           1
   dummyOECD
18         1
Run Code Online (Sandbox Code Playgroud)

我在命令中改变的是奥地利之后的另一个空格.

显然会出现更烦人的问题.例如,当我想根据国家/地区列合并两个帧时.一个data.frame用于"Austria "另一个帧"Austria".匹配不起作用.

  1. 有没有一种很好的方式来"显示"我的屏幕上的空白,以便我知道这个问题?
  2. 我可以删除R中的前导和尾随空格吗?

到目前为止,我曾经写过一个Perl删除空格的简单脚本,但如果我可以在R里面以某种方式做到这一点会很好.

whitespace r trim removing-whitespace r-faq

345
推荐指数
10
解决办法
29万
查看次数

如何在ggplot2 R图中设置轴的限制?

我绘制以下内容:

library(ggplot2)    

carrots <- data.frame(length = rnorm(500000, 10000, 10000))
cukes <- data.frame(length = rnorm(50000, 10000, 20000))
carrots$veg <- 'carrot'
cukes$veg <- 'cuke'
vegLengths <- rbind(carrots, cukes)

ggplot(vegLengths, aes(length, fill = veg)) +
 geom_density(alpha = 0.2)
Run Code Online (Sandbox Code Playgroud)

现在说我只是想绘制之间的区域x=-50005000,而不是整个范围.

我怎样才能做到这一点?

plot r ggplot2

336
推荐指数
2
解决办法
55万
查看次数

如何重新排序数据框中的列?

如何更改此输入(使用序列:time,in,out,files):

Time   In    Out  Files
1      2     3    4
2      3     4    5
Run Code Online (Sandbox Code Playgroud)

到这个输出(顺序:时间,输出,文件)?

Time   Out   In  Files
1      3     2    4
2      4     3    5
Run Code Online (Sandbox Code Playgroud)

这是虚拟R数据:

table <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5))
table
##  Time In Out Files
##1    1  2   3     4
##2    2  3   4     5
Run Code Online (Sandbox Code Playgroud)

sorting r dataframe r-faq

275
推荐指数
9
解决办法
49万
查看次数

评估以字符串形式给出的表达式

我很想知道R是否可以使用它的eval()功能来执行例如字符串提供的计算.

这是一个常见的情况:

eval("5+5")
Run Code Online (Sandbox Code Playgroud)

但是,而不是10我得到:

[1] "5+5"
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

eval r r-faq

263
推荐指数
7
解决办法
17万
查看次数

连接字符串/字符的向量

如果我有一个字符类型的向量,我如何将值连接成字符串?这是我用paste()做的方法:

sdata = c('a', 'b', 'c')
paste(sdata[1], sdata[2], sdata[3], sep ='')
Run Code Online (Sandbox Code Playgroud)

屈服"abc".

但是,当然,这只有在我提前了解sdata的长度时才有效.

string r r-faq

241
推荐指数
6
解决办法
26万
查看次数

ggplot:如何更改构面标签?

我使用了以下ggplot命令:

ggplot(survey, aes(x = age)) + stat_bin(aes(n = nrow(h3), y = ..count.. / n), binwidth = 10)
  + scale_y_continuous(formatter = "percent", breaks = c(0, 0.1, 0.2))
  + facet_grid(hospital ~ .)
  + theme(panel.background = theme_blank())
Run Code Online (Sandbox Code Playgroud)

生产

替代文字

我想将facet标签更改为更短的标签(如Hosp 1,Hosp 2 ......),因为它们现在太长并且看起来很狭窄(增加图形的高度不是一个选项,它需要文档中的空间太大).我查看了facet_grid帮助页面,但无法弄清楚如何.

symbols r facet ggplot2 plotmath

210
推荐指数
11
解决办法
21万
查看次数