Questions tagged «r»

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

7
提取dplyr tbl列作为向量
是否有更简洁的方法从带有数据库后端的tbl中获取dplyr tbl的一列作为向量(即,数据帧/表不能直接成为子集)? require(dplyr) db <- src_sqlite(tempfile(), create = TRUE) iris2 <- copy_to(db, iris) iris2$Species # NULL 那太容易了,所以 collect(select(iris2, Species))[, 1] # [1] "setosa" "setosa" "setosa" "setosa" etc. 但是似乎有点笨拙。

1
如何使用“ OR”组合多个条件以子集数据帧?
我在R中有一个data.frame。我想在两个不同的列上尝试两个不同的条件,但我希望这些条件包括在内。因此,我想使用“或”来组合条件。当我想使用“ AND”条件时,我已经使用以下语法取得了很多成功。 my.data.frame <- data[(data$V1 > 2) & (data$V2 < 4), ] 但是我不知道上面如何使用“ OR”。
174 r  conditional  dataframe 

11
将两个单词的字符串中两个单词的首字母大写
假设我有两个单词的字符串,并且我想将两者都大写。 name <- c("zip code", "state", "final count") 该Hmisc软件包具有capitalize将第一个单词大写的功能,但是我不确定如何使第二个单词大写。的帮助页面capitalize并不暗示它可以执行该任务。 library(Hmisc) capitalize(name) # [1] "Zip code" "State" "Final count" 我想得到: c("Zip Code", "State", "Final Count") 三字串呢: name2 <- c("I like pizza")
174 r  string  title-case 

4
如何在R脚本中全局抑制警告
我的R脚本很长,会引发一些警告,我可以忽略这些警告。我可以用 suppressWarnings(expr) 对于单个语句。但是如何在全局范围内抑制R中的警告?有这个选项吗?
174 r  warnings 

8
对于R数据框中的每一行
我有一个数据框,对于该数据框的每一行,我必须进行一些复杂的查找并将一些数据附加到文件中。 dataFrame包含用于生物学研究的96孔板中选定孔的科学结果,因此我想做以下事情: for (well in dataFrame) { wellName <- well$name # string like "H1" plateName <- well$plate # string like "plate67" wellID <- getWellID(wellName, plateName) cat(paste(wellID, well$value1, well$value2, sep=","), file=outputFile) } 在我的程序世界中,我会做类似的事情: for (row in dataFrame) { #look up stuff using data from the row #write stuff to the file …
173 r  dataframe  rows 

10
一次加载多个软件包
如何一次装入一堆软件包,而又不需一遍又一遍地重新键入require命令?我尝试了三种崩溃和燃烧的方法。 基本上,我想提供一个包名称向量给要加载它们的函数。 x<-c("plyr", "psych", "tm") require(x) lapply(x, require) do.call("require", x)
173 r  packages 

3
.SD在R中的data.table中代表什么
.SD看起来很有用,但我真的不知道自己在做什么。它代表什么?为什么会有前期(句号)。使用时会发生什么? 我读到: .SD是一个data.table包含x每个组数据的子集,但不包括组列。在按i分组时,在按by,键by和_ad hoc_ 分组时可以使用它by 这是否意味着女儿data.tables被保存在存储器中以进行下一个操作?
172 r  data.table 

8
在分类变量图表中显示%而不是计数
我正在绘制一个类别变量,而不是显示每个类别值的计数。 我正在寻找一种方法来ggplot显示该类别中的值的百分比。当然,可以使用计算出的百分比创建另一个变量并绘制该变量,但是我必须执行数十次,我希望可以通过一个命令来实现。 我正在尝试类似的东西 qplot(mydataf) + stat_bin(aes(n = nrow(mydataf), y = ..count../n)) + scale_y_continuous(formatter = "percent") 但由于出现错误,我必须使用不正确。 为了轻松复制设置,这是一个简化的示例: mydata <- c ("aa", "bb", NULL, "bb", "cc", "aa", "aa", "aa", "ee", NULL, "cc"); mydataf <- factor(mydata); qplot (mydataf); #this shows the count, I'm looking to see % displayed. 在实际情况下,我可能会使用ggplot代替qplot,但是使用stat_bin的正确方法仍然着我。 我还尝试了以下四种方法: ggplot(mydataf, aes(y …
170 r  ggplot2 

5
ggplot2折线图给出“ geom_path:每组仅包含一个观测值。您需要调整团队审美吗?”
使用此数据帧(“ df”): year pollution 1 1999 346.82000 2 2002 134.30882 3 2005 130.43038 4 2008 88.27546 我尝试创建如下折线图: plot5 <- ggplot(df, aes(year, pollution)) + geom_point() + geom_line() + labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore") 我得到的错误是: geom_path:每组仅包含一个观测值。您是否需要调整小组审美? 即使我需要折线图,该图也会显示为散点图。我尝试替换为geom_line(),geom_line(aes(group = year))但是没有用。 在回答中,我被告知将年份转换为因子变量。我做到了,问题仍然存在。这是输出str(df)和dput(df): 'data.frame': …
170 r  ggplot2 

3
为什么使用purrr :: map而不是lapply?
有什么理由我应该使用 map(<list-like-object>, function(x) <do stuff>) 代替 lapply(<list-like-object>, function(x) <do stuff>) 输出应该是相同的,并且我所做的基准测试似乎表明lapply速度稍快(应该根据map需要评估所有非标准评估输入)。 那么,在这种简单情况下,我是否应该考虑转用任何理由purrr::map?我在这里不是在问语法的好恶,而是由purrr等提供的其他功能,而是严格地purrr::map与lapply假设使用标准评估进行比较map(<list-like-object>, function(x) <do stuff>)。purrr::map在性能,异常处理等方面有什么优势吗?下面的评论建议不要这样做,但是也许有人可以详细说明一下?
170 r  purrr 

8
修复了多个警告“未知列”
对于所有类型的命令(例如,在软件包上安装更新的str(x)),我都会持续发出“未知列”的多次警告,并且不确定如何调试或修复它。 警告“未知列”显然与我重命名的tbl_df中的变量有关,但是警告似乎出现在与tbl_df不相关的所有命令中(例如,在x为x的软件包str(x)上安装更新)只是一个字符向量)。
169 r  dplyr 

8
在`dplyr`中使用动态变量名
我想用来dplyr::mutate()在数据框中创建多个新列。列名及其内容应动态生成。 来自虹膜的示例数据: library(dplyr) iris <- tbl_df(iris) 我创建了一个函数来从Petal.Width变量中更改新列: multipetal <- function(df, n) { varname <- paste("petal", n , sep=".") df <- mutate(df, varname = Petal.Width * n) ## problem arises here df } 现在,我创建一个循环来构建我的列: for(i in 2:5) { iris <- multipetal(df=iris, n=i) } 但是,由于mutate认为varname是一个文字变量名,因此循环仅创建一个新变量(称为varname),而不是四个(称为花瓣2-花瓣5)。 如何mutate()使用动态名称作为变量名称?
168 r  dplyr  r-faq 

12
在数据框的每一行上调用类似应用的函数,每一行中都有多个参数
我有一个多列的数据框。对于数据框中的每一行,我想在该行上调用一个函数,并且该函数的输入正在使用该行中的多个列。例如,假设我有此数据和接受两个参数的testFunc: > df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6)) > df x y z 1 1 3 5 2 2 4 6 > testFunc <- function(a, b) a + b 假设我想将此testFunc应用于x和z列。因此,对于第1行,我想要1 + 5,对于第2行,我想要2 + 6。是否有一种无需编写for循环就能做到这一点的方法,也许可以应用apply函数族吗? 我尝试了这个: > df[,c('x','z')] x z 1 1 5 2 2 6 > lapply(df[,c('x','z')], testFunc) Error in a …
168 r  dataframe 

5
如何将表转换为数据框
我在R中有一张桌子有str()这个: table [1:3, 1:4] 0.166 0.319 0.457 0.261 0.248 ... - attr(*, "dimnames")=List of 2 ..$ x: chr [1:3] "Metro >=1 million" "Metro <1 million" "Non-Metro Counties" ..$ y: chr [1:4] "q1" "q2" "q3" "q4" 当我打印时看起来像这样: y x q1 q2 q3 q4 Metro >=1 million 0.1663567 0.2612212 0.2670441 0.3053781 Metro …
167 r 

7
将数据从JSON文件导入R
有没有办法将数据从JSON文件导入R?更具体地说,该文件是带有字符串字段,对象和数组的JSON对象的数组。关于如何处理此http://cran.r-project.org/web/packages/rjson/rjson.pdf,RJSON软件包尚不清楚。
166 json  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.