Questions tagged «r»

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

9
如何将所有控制台输出保存到R中的文件?
我想将所有控制台文本重定向到文件。这是我尝试过的: > sink("test.log", type=c("output", "message")) > a <- "a" > a > How come I do not see this in log Error: unexpected symbol in "How come" 这是我在test.log中得到的: [1] "a" 这是我想要的test.log: > a <- "a" > a [1] "a" > How come I do not see this in log Error: …
82 file  r  console  logging 


8
如何在R中进行vlookup和填充(如在Excel中)?
我有一个约105000行和30列的数据集。我有一个类别变量,我想将其分配给一个数字。在Excel中,我可能会用VLOOKUP和填充。 我将如何去做同样的事情R? 本质上,我拥有的是HouseType变量,我需要计算HouseTypeNo。以下是一些示例数据: HouseType HouseTypeNo Semi 1 Single 2 Row 3 Single 2 Apartment 4 Apartment 4 Row 3
82 r  lookup 

4
创建一个提示/回答系统以将数据输入到R中
我创建了一些R代码,供不了解R的人使用(尽管我本人很绿)。我一直在让人们将初始数据粘贴到R控制台中(结果混合),我希望为人们建立一种更加用户友好的方式来输入数据。 理想情况下,有人可以坐在控制台上,键入命令,然后提示有关如何输入数据的特定问题。 例如,某人加载r并看到提示: What is x value? 该人输入: 2 下一条提示: What is y value? 人员输入: 3 下一条提示: What are T values? 人员输入: 4,3,2,1 下一条提示: 什么是V值? 人员输入: 4,5,6,9 有了这四个新定义的变量(X,Y,T,V),R的下一步就是运行预先编写的代码 X+Y V+T 然后在控制台中弹出答案 5 8 8 8 10 每个人都很高兴 我很抱歉,这不是一个可重现的代码问题,但是我不确定如何使R提出问题而不是向我提出有关R的问题!
82 r 

5
从R写入Excel时处理java.lang.OutOfMemoryError
该xlsx软件包可用于读取和写入R中的Excel电子表格。不幸的是,即使对于中等大小的电子表格,java.lang.OutOfMemoryError也可能会发生。尤其是, .jcall(“ RJavaTools”,“ Ljava / lang / Object;”,“ invokeMethod”,cl,中的错误: java.lang.OutOfMemoryError:Java堆空间 .jcall(“ RJavaTools”,“ Ljava / lang / Object;”,“ newInstance”,.jfindClass(class),中的错误: java.lang.OutOfMemoryError:超出了GC开销限制 (其他相关例外也是可能的,但很少见。) 在读取电子表格时,针对此错误提出了类似的问题。 导入大xlsx文件到R? 与CSV相比,使用Excel电子表格作为数据存储介质的主要优点是可以将多个工作表存储在同一个文件中,因此在这里我们考虑将一个数据帧列表写入每个工作表一个数据帧。此示例数据集包含40个数据帧,每个数据帧包含两列,每行最多200k行。它的大小设计得足以出现问题,但是您可以通过更改n_sheets和来更改大小n_rows。 library(xlsx) set.seed(19790801) n_sheets <- 40 the_data <- replicate( n_sheets, { n_rows <- sample(2e5, 1) data.frame( x = runif(n_rows), y = sample(letters, n_rows, replace = TRUE) ) }, …
82 r  xlsx 

3
如何在ggplot2的构面中添加常规标签?
我经常会提供数值作为方面。我希望提供足够的信息来解释补充性标题中的这些构面值,类似于轴标题。标签程序选项会重复很多不必要的文本,并且不适用于较长的变量标题。 有什么建议么? 默认值: test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20)) qplot(data=test, x=x, y=y, facets=facet.b~facet.a) 我想要的是: 我在ggplot中能做的最好的事情: qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both) 如@Hendy所示,类似于: 向ggplot2绘图添加辅助y轴-使其完美
82 r  label  facet  ggplot2 

16
将类别从因子更改为数据框中许多列的数值
从factor将大量列更改为数字的最快/最佳方法是什么? 我使用了以下代码,但它似乎已重新排序了我的数据。 > head(stats[,1:2]) rk team 1 1 Washington Capitals* 2 2 San Jose Sharks* 3 3 Chicago Blackhawks* 4 4 Phoenix Coyotes* 5 5 New Jersey Devils* 6 6 Vancouver Canucks* for(i in c(1,3:ncol(stats))) { stats[,i] <- as.numeric(stats[,i]) } > head(stats[,1:2]) rk team 1 2 Washington Capitals* 2 13 …
82 r 

8
邮编或枚举R?
这些Python列表推导的R等效项是什么: [(i,j) for i,j in zip(index, Values)] [(i,j) for i,j in enumerate(Values)] [(i,j) for i,j in enumerate(range(10,20))] %MWE, indexing or enumerating to %keep up with the index, there may %be some parameter to look this up 输出示例 >>> [(i,j) for i,j in enumerate(range(10,20))] [(0, 10), (1, 11), (2, 12), (3, …
82 r  indexing  enumerate 

6
从POSIXct提取时间
我将如何从一系列POSIXct对象中提取时间并丢弃日期部分? 例如,我有: times <- structure(c(1331086009.50098, 1331091427.42461, 1331252565.99979, 1331252675.81601, 1331262597.72474, 1331262641.11786, 1331269557.4059, 1331278779.26727, 1331448476.96126, 1331452596.13806), class = c("POSIXct", "POSIXt")) 对应于以下日期: "2012-03-07 03:06:49 CET" "2012-03-07 04:37:07 CET" "2012-03-09 01:22:45 CET" "2012-03-09 01:24:35 CET" "2012-03-09 04:09:57 CET" "2012-03-09 04:10:41 CET" "2012-03-09 06:05:57 CET" "2012-03-09 08:39:39 CET" "2012-03-11 07:47:56 CET" "2012-03-11 08:56:36 CET" 现在,我有一些在那时测量的参数值 …
82 r  date  time  posixct 


5
具有动态变量数的公式
假设有一些data.frame foo_data_frame,有人想通过其他一些列来查找目标列Y的回归。为此,通常使用一些公式和模型。例如: linear_model <- lm(Y ~ FACTOR_NAME_1 + FACTOR_NAME_2, foo_data_frame) 如果公式是静态编码的,那很好。如果希望从具有恒定数量因变量(例如2)的多个模型中扎根,可以将其视为: for (i in seq_len(factor_number)) { for (j in seq(i + 1, factor_number)) { linear_model <- lm(Y ~ F1 + F2, list(Y=foo_data_frame$Y, F1=foo_data_frame[[i]], F2=foo_data_frame[[j]])) # linear_model further analyzing... } } 我的问题是,当程序运行期间变量数动态变化时,如何产生相同的影响? for (number_of_factors in seq_len(5)) { # Then root over …
82 r  formula 

10
如何为所选列替换表中的NA值
关于替换NA值的文章很多。我知道可以用以下内容替换下表/框架中的NA: x[is.na(x)]<-0 但是,如果我想将其限制为仅某些列呢?让我给你看一个例子。 首先,让我们从数据集开始。 set.seed(1234) x <- data.frame(a=sample(c(1,2,NA), 10, replace=T), b=sample(c(1,2,NA), 10, replace=T), c=sample(c(1:5,NA), 10, replace=T)) 这使: a b c 1 1 NA 2 2 2 2 2 3 2 1 1 4 2 NA 1 5 NA 1 2 6 2 NA 5 7 1 1 4 8 1 …

2
如何使用ggplot2设置图例alpha
我有一个风速相对于方向的图表,该图表具有很大的点数,因此除了color = month外,还使用alpha = I(1/20) 这是代码示例: library(RMySQL) library(ggplot2) con <- dbConnect(...) wind <- dbGetQuery(con, "SELECT speed_w/speed_e AS ratio, dir_58 as dir, MONTHNAME(timestamp) AS month, ROUND((speed_w+speed_e)/2) AS speed FROM tablename;"); png("ratio-by-speed.png",height=400,width=1200) qplot(wind$dir,wind$ratio,ylim=c(0.5,1.5),xlim=c(0,360),color=wind$month,alpha=I(1/30),main="West/East against direction") dev.off() 这会产生一个不错的图形,但是我的问题是图例的alpha也是1/30,这使它不可读。有没有办法我可以强制图例改为1 alpha? 这是一个例子:
81 r  ggplot2 

15
通过名称重命名多列
有人应该已经问过这个问题,但是我找不到答案。说我有: x = data.frame(q=1,w=2,e=3, ...and many many columns...) 将我不一定知道位置的列的任意子集重命名为其他任意名称的最优雅方法是什么? 例如说,我要重命名"q"和"e"成"A"和"B",什么是最优雅的代码来做到这一点? 显然,我可以做一个循环: oldnames = c("q","e") newnames = c("A","B") for(i in 1:2) names(x)[names(x) == oldnames[i]] = newnames[i] 但是我想知道是否有更好的方法?也许使用某些软件包?(plyr::rename等)
81 r  dataframe  rename  r-faq 

4
如何使用键盘命令中断R中正在运行的代码?
谁能告诉我如何中断R中正在运行的脚本? 假设我遇到了无限循环或其他问题,并且我想停止脚本的运行。是否有执行该操作的键盘命令? 如果有帮助,在Python中为Ctrl + c。我在R中尝试过,但是没有用:)。 我对这个看似简单的问题做了一些搜索,但找不到答案。 提前致谢。
81 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.