Questions tagged «r»

R是一种免费的开源编程语言和软件环境,用于统计计算,生物信息学,可视化和通用计算。请提供最少且可复制的示例以及所需的输出。使用`dput()`作为数据,并通过`library()`调用指定所有非基本包。不要为数据或代码嵌入图片,而应使用缩进的代码块。对于统计相关的问题,请使用https://stats.stackexchange.com。

2
如何使用ggplot2在R中的每个条形图上在geom_bar上放置标签
我发现了如何使用ggplot2在R中的geom_bar上放置标签放置标签,但是它只是将label(numbers)放在一个栏中。 假设这是每个x轴的两个条形,该怎么做? 我的数据和代码如下所示: dat <- read.table(text = "sample Types Number sample1 A 3641 sample2 A 3119 sample1 B 15815 sample2 B 12334 sample1 C 2706 sample2 C 3147", header=TRUE) library(ggplot2) bar <- ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + geom_bar(position = 'dodge') + geom_text(aes(label=Number)) 然后,我们将获得: 似乎数字文本也位于“躲避”模式中。我搜索了geom_text手册以查找一些信息,但是无法使其正常工作。 有什么建议吗?
99 r  ggplot2  bar-chart 

4
将几个参数传递给lapply(和其他* apply)的FUN
我在使用lapply中有一个关于将多个参数传递给函数的问题R。 当我将lapply与-的语法一起使用时,lapply(input, myfun);这很容易理解,我可以这样定义myfun: myfun <- function(x) { # doing something here with x } lapply(input, myfun); 和的元素input作为x参数传递给myfun。 但是,如果我需要传递更多的参数myfunc呢?例如,它的定义如下: myfun <- function(x, arg1) { # doing something here with x and arg1 } 如何通过传递两个input元素(作为x参数)和其他一些参数来使用此函数?
99 r  lapply 

10
将多列粘贴在一起
我在数据框中有一堆列,希望将它们粘贴在一起(用“-”分隔),如下所示: data <- data.frame('a' = 1:3, 'b' = c('a','b','c'), 'c' = c('d', 'e', 'f'), 'd' = c('g', 'h', 'i')) i.e. a b c d 1 a d g 2 b e h 3 c f i 我想成为: a x 1 a-d-g 2 b-e-h 3 c-f-i 我通常可以这样: within(data, x <- paste(b,c,d,sep='-')) …
99 r  paste  r-faq 

11
如何从数据集中删除离群值
我有一些关于年龄与美丽的多元数据。年龄范围为20至40,间隔为2(20,22,24 .... 40),对于每条数据记录,年龄和美容等级均为1-5。当我对这些数据进行箱形图绘制(X轴上的年龄,Y轴上的美容等级)时,每个框的晶须外都绘制了一些离群值。 我想从数据框中删除这些离群值,但是我不确定R如何计算其箱形图的离群值。以下是我的数据可能显示的示例。
98 r  statistics  outliers 

6
在ggplot2中的qplot()和ggplot()之间进行选择
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 我开始使用很棒的ggplot2程序包在R中进行绘图,而在每次绘图之前我问自己的第一件事就是“好吧,我会使用qplot还是ggplot?”。 我了解这qplot提供了一种更简单的语法,同时又提供了ggplot最大的功能和灵活性,但是您最常使用的功能是什么,每个功能都有确切的用例吗?您主要使用qplot且ggplot仅用于复杂地块,还是ggplot每次都使用? 感谢您的反馈意见 !
98 r  ggplot2 

6
使用dplyr跨多列求和
我的问题涉及跨数据框的多个列求和,并使用来创建与该求和相对应的新列dplyr。列中的数据条目为binary(0,1)。我正在考虑的summarise_each或mutate_each函数的逐行模拟dplyr。以下是数据框的最小示例: library(dplyr) df=data.frame( x1=c(1,0,0,NA,0,1,1,NA,0,1), x2=c(1,1,NA,1,1,0,NA,NA,0,1), x3=c(0,1,0,1,1,0,NA,NA,0,1), x4=c(1,0,NA,1,0,0,NA,0,0,1), x5=c(1,1,NA,1,1,1,NA,1,0,1)) > df x1 x2 x3 x4 x5 1 1 1 0 1 1 2 0 1 1 0 1 3 0 NA 0 NA NA 4 NA 1 1 1 1 5 0 1 1 0 1 6 1 0 0 0 …
98 r  dplyr 

5
R中的异常处理
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 改善这个问题 有人在R中有异常处理的示例/教程吗?官方文档非常简洁。

7
如何将对象加载到从R数据文件指定的变量名称中?
使用将变量保存到R数据文件中时save,该变量将以其在保存该变量的会话中使用的任何名称保存。以后当我从另一个会话中加载它时,它以相同的名称加载,加载脚本可能无法知道该名称。该名称可能会覆盖加载会话中同名的现有变量。有没有一种方法可以将数据文件中的对象安全地加载到指定的变量名中,而不会破坏现有变量? 例: 保存会话: x = 5 save(x, file="x.Rda") 正在加载会话: x = 7 load("x.Rda") print(x) # This will print 5. Oops. 我希望它如何工作: x = 7 y = load_object_from_file("x.Rda") print(x) # should print 7 print(y) # should print 5


6
使用dplyr过滤data.frame中的完整案例(逐案删除)
是否可以使用dplyr过滤data.frame以获取完整案例?complete.cases当然,列出所有变量的列表是可行的。但这是a)当有很多变量时冗长; b)当变量名未知时(例如,在处理任何data.frame的函数中),则不可能。 library(dplyr) df = data.frame( x1 = c(1,2,3,NA), x2 = c(1,2,NA,5) ) df %.% filter(complete.cases(x1,x2))
97 r  dplyr  magrittr 

4
dplyr summarise:等效于“ .drop = FALSE”,以在输出中保留长度为零的组
summarise与with plyr的ddply函数一起使用时,默认情况下会删除空类别。您可以通过添加更改此行为.drop = FALSE。但是,当summarise与结合使用时,这是行不通的dplyr。还有另一种方法可以在结果中保留空类别吗? 这是伪造数据的示例。 library(dplyr) df = data.frame(a=rep(1:3,4), b=rep(1:2,6)) # Now add an extra level to df$b that has no corresponding value in df$a df$b = factor(df$b, levels=1:3) # Summarise with plyr, keeping categories with a count of zero plyr::ddply(df, "b", summarise, count_a=length(a), .drop=FALSE) b count_a 1 1 6 …
97 r  dplyr  plyr  tidyr 

5
在R中合并/联接data.frames最快的方法是什么?
例如(不确定最有代表性的例子): N <- 1e6 d1 <- data.frame(x=sample(N,N), y1=rnorm(N)) d2 <- data.frame(x=sample(N,N), y2=rnorm(N)) 到目前为止,这是我得到的: d <- merge(d1,d2) # 7.6 sec library(plyr) d <- join(d1,d2) # 2.9 sec library(data.table) dt1 <- data.table(d1, key="x") dt2 <- data.table(d2, key="x") d <- data.frame( dt1[dt2,list(x,y1,y2=dt2$y2)] ) # 4.9 sec library(sqldf) sqldf() sqldf("create index ix1 on d1(x)") …


5
加载软件包时禁用消息
我有一个R包(ROCR),需要在R环境中加载。装入包装后,将打印一组消息。通常,这很好,但是由于R脚本的输出正用于进一步分析,因此我想完全禁用所有这些输出。我怎么做?此外,我宁愿完全不必修改ROCR来执行此操作,这样该脚本的未来用户也不必这样做。 至今: sink()在这里不起作用-将stdout和std err都重定向到/dev/null对我没有任何作用。 毫不奇怪,它们options(warnings=-1)什么也不做,因为这些本身并不是警告,而是要打印出来的。 有什么想法吗?
97 r  messages 

8
对于每一行,返回最大值的列名称
我有一个员工花名册,我需要知道他们最常在哪个部门工作。用部门名称对员工ID进行制表很简单,但是从频率表中返回部门名称而不是名册数比较麻烦。下面是一个简单的示例(列名=部门,行名=员工ID)。 DF <- matrix(sample(1:9,9),ncol=3,nrow=3) DF <- as.data.frame.matrix(DF) > DF V1 V2 V3 1 2 7 9 2 8 3 6 3 1 5 4 现在我怎么得到 > DF2 RE 1 V3 2 V1 3 V2
97 r 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.