小编Anj*_*jaM的帖子

MongoDB中的查询

我正在尝试使用rmongodb从MongoDB数据库中获取信息以便在R中进一步处理.但是,我真的开始时遇到了一些困难.这个工作:

cursor <- mongo.find(mongo, "people", query=list(last.name="Smith", first.name="John"),
                 fields=list(address=1L, age=1L))
while (mongo.cursor.next(cursor)){
  print(mongo.cursor.value(cursor))}
Run Code Online (Sandbox Code Playgroud)

现在,如果我想找到名字是"John"或"Bob"或"Catherine"的人呢?我试过query=list(last.name="Smith", first.name=c(John, Bob, Catherine))但这没有用.替换也没有=%.

另一个问题是数据库内容是嵌套的,这意味着我有子树,子树等等.例如,对于条目first.name="John", last.name="Smith"我可能有子条目address, age, occupation,并且再次占用我可能有类别作为子树(例如从2005年到2012年的年份和每年我都会有一个像"失业","职员","企业家"这样的条目.那么,如果我想找到所有名字为"约翰"的人,他们已经40岁并且在2010年失业了怎么办?查询会是什么样的?

编辑作为对Stennie的回复:这是我的数据库结构和我正在尝试的查询的示例.想象一下,一所大学的校友被细分为小组(例如"非常好的学生","好学生"等).然后,每个组都包含已分配给该组的人员列表及其详细信息.

(0){..}
   _id  : (Object ID) class id
   groupname: (string) unique name for this group (e.g. "beststudents")
   members[11]
       (0){..}
           persid : (integer) 1
           firstname: (string)
           surname: (string)
           age: (integer)
           occupation: (string)
       (1){..}
           persid : (integer) 2
           firstname: (string)
           surname: (string)
           age: (integer)
           occupation: (string)
#      and so on …
Run Code Online (Sandbox Code Playgroud)

r mongodb rmongodb

7
推荐指数
1
解决办法
1816
查看次数

在R中找到局部最大值/最小值

我有一堆数据(每个测量系列10,000到50,000个值),我有兴趣自动识别这些值分布的密度估计中的局部最大值/最小值.事实上,我认为通常应该有两个峰,由一个坑隔开,我想找到将两个峰彼此分开的坑,以便将数据分成两部分进行进一步处理.如果可能的话,我还想知道峰的位置.

由于密度估计可能包含非常小的局部变化,我希望有可能调整"灵敏度".到目前为止我能找到的最好的是@Tommy的解决方案:https://stackoverflow.com/a/6836924/1003358 这是一个例子:

library(ggplot2)

d <- density(faithful$eruptions, bw = "sj")
loc.max <- d$x[localMaxima(d$y)]

ggplot(faithful, aes(eruptions)) + geom_density(adjust=1/2) +
  geom_vline(x=loc.max, col="red") +
  xlab("Measured values")
Run Code Online (Sandbox Code Playgroud)

识别忠实数据集中的最大值

现在,我的数据噪音很大:

d <- density(my.df$Values, bw = "sj")
loc.max <- d$x[localMaxima(d$y)]

ggplot(my.df, aes(Values)) + geom_density(adjust=1/2) +
  geom_vline(x=loc.max, col="red") +
  xlab("Measured values")
Run Code Online (Sandbox Code Playgroud)

首次尝试在我的数据集中识别最大值

试图调整参数(注意尾部有两个"不需要的"峰值):

d <- density(my.df$Values, bw="nrd", adjust=1.2)
loc.max <- d$x[localMaxima(d$y)]

ggplot(my.df, aes(Values)) + geom_density(adjust=1/2) +
  geom_vline(x=loc.max, col="red") +
  xlab("Measured values")
Run Code Online (Sandbox Code Playgroud)

第二次尝试检测数据集中的峰值

所以问题是:

1)如何在这样的噪声数据集中自动识别真实峰值?2)如何可靠地找到分离这些峰的凹坑?

r

7
推荐指数
1
解决办法
6027
查看次数

来自命令行的R脚本

我想从Windows命令行运行此示例脚本:http://mazamascience.com/WorkingWithData/?p = 912.所以我打开命令行并输入Rscript tryCatch.R 1.但是,我一直收到错误消息Error: R not found.我确实将PATH环境变量设置为C:\Programme\R\R-3.0.1\bin.如果我只是键入R.exe,它确实启动R,但它找不到要在开始时加载的包(例如package 'utils' in options<"defaultPackages"> was not found).我想我必须在某处设置另一条通往图书馆的路径,但我不知道该在哪里做.

更新:显式键入后PATH C:\Programme\R\R-3.0.1\bin(而不是仅将其添加到环境变量PATH的值),似乎R找到了.但是,会出现一个新问题:In normalizePath<path.expand(path), winslash, mustWork>: path[2] = "C:/Programme/R/R-3.0.1/library": Access deniedmethods库相同.然后:Calls: .First ... library -> .getRequiredPackages2 -> library -> normalizePath Execution stopped.我使用的是Windows 7,但我确实拥有管理员权限.

command-line r

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

如何在ggplot2中修改boxplot的胡须?

我将从一个MWE开始:

library(ggplot2)

p <- ggplot(mtcars, aes(factor(cyl), mpg, fill = factor(am)))
p + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想修改胡须的颜色,例如,将其设置为红色.我认为不可能直接做到这两点geom_boxplot,所以这是我的解决方法:

library(Hmisc)

stat_sum_df <- function(fun, geom = "crossbar", ...) {
  stat_summary(fun.data = fun, geom = geom, width = 0.4, ...)
}

p + stat_boxplot(geom = 'linerange', colour = "red", position = "dodge) +
    stat_sum_df("median_hilow", conf.int = 0.5, position = "dodge") 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

线范围堆叠在一起.接下来尝试:

p + stat_boxplot(geom = 'linerange', colour = "red", position = position_dodge(width = .5)) +
   stat_sum_df("median_hilow",conf.int=0.5, position = position_dodge(width = .5))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

看起来更好,但现在盒子之间有一个固定的空间(比较第一和第三个图上的cyl = 8).由于我将使用这个代码用于不同级别的am …

r ggplot2 boxplot

6
推荐指数
2
解决办法
6374
查看次数

闪亮的活性色

是否可以使用选择小部件来显示反应颜色选择的调色板?我想让用户选择由闪亮应用创建的情节的颜色.

javascript r shiny

6
推荐指数
2
解决办法
827
查看次数

将树形图导出为R中的表格

我想将R中的hclust-dendrogram导出到数据表中,以便随后将其导入另一个("自制")软件.str(unclass(fit))提供了树形图的文本概述,但我正在寻找的是一个数字表.我看过Bioconductor ctc软件包,但它产生的输出看起来有点密码.我想有类似这样的桌上的东西:http://stn.spotfire.com/spotfire_client_help/heat/heat_importing_exporting_dendrograms.htm 有没有办法让这出R中的hclust对象的?

r cluster-analysis dendrogram hclust

5
推荐指数
1
解决办法
5303
查看次数

使用哪个包连接R与MongoDB?

我想知道连接MongoDB rmongodbRMongo包之间的主要区别是什么R.这两个包的优点和缺点是什么?

r mongodb rmongodb rmongo

5
推荐指数
1
解决办法
7573
查看次数

合并数据框并将列组合成一个

我有以下三个数据帧:

df1 <- data.frame(name=c("John", "Anne", "Christine", "Andy"),
                  age=c(31, 26, 54, 48),
                  height=c(180, 175, 160, 168),
                  group=c("Student",3,5,"Employer"), stringsAsFactors=FALSE)

df2 <- data.frame(name=c("Anne", "Christine"),
                  age=c(26, 54),
                  height=c(175, 160),
                  group=c(3,5),
                  group2=c("Teacher",6), stringsAsFactors=FALSE)

df2 <- data.frame(name=c("Christine"),
                  age=c(54),
                  height=c(160),
                  group=c(5),
                  group2=c(6),
                  group3=c("Scientist"), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

我想将它们组合起来,以便得到以下结果:

df.all <- data.frame(name=c("John", "Anne", "Christine", "Andy"),
                     age=c(31, 26, 54, 48),
                     height=c(180, 175, 160, 168),
                     group=c("Student", "Teacher", "Scientist", "Employer"))
Run Code Online (Sandbox Code Playgroud)

目前我正是这样做的:

df.all <- merge(merge(df1[,c(1,4)], df2[,c(1,5)], all=TRUE, by="name"),
                df3[,c(1,6)], all=TRUE, by="name")
row.ind <- which(df.all$group %in% c(6,5))
df.all[row.ind, c("group")] <- df.all[row.ind, c("group2")]
row.ind2 <- which(df.all$group2 %in% …
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
4945
查看次数

如何从R中的UNC指定的目录中读取文件?

是否可以从UNC指定的目录中读取文件R?我想在不使用基本安装之外的任何软件包的情况下这样做.

r unc

4
推荐指数
1
解决办法
3134
查看次数

在函数中交叉连接data.table

我想data.table在函数中创建一个交叉连接.说,我们有一个矢量vals <- c("yes", "no").现在这个有效:CJ(vals, vals).但是,根据功能输入,我可能需要创建例如CJ(vals, vals, vals, vals).就像是

vals <- c("yes", "no")
n <- 4
CJ(rep(vals, n))
Run Code Online (Sandbox Code Playgroud)

显然不会奏效.如何以灵活的方式指定交叉连接的向量?

r data.table

3
推荐指数
1
解决办法
853
查看次数