Questions tagged «r-faq»

创建r-faq标签是为了将有限数量的问题分组,以讨论定期出现在R标签上的问题。它不是R for SO的官方常见问题解答,但应作为有关常见问题的有趣信息来源。

23
如何制作出色的R可重现示例
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 与同事讨论性能,教学,发送错误报告或在邮件列表以及堆栈溢出此处寻求指导时,经常会问到一个可重复的示例,并且总是很有帮助。 您建立出色范例的秘诀是什么?如何从中粘贴数据结构[R以文本格式?您还应该包括哪些其他信息? 在另外还有其他招数来使用dput(),dump()或structure()?您何时应包含library()或require()声明?其中保留的话应该避免一个,此外c,df,data等? 一个人如何成就伟大 [R 可复制的例子?
2473 r  r-faq 

19
如何按多个列对数据框进行排序
我想按多个列对data.frame进行排序。例如,对于下面的data.frame,我想按列z(降序)然后按列b(升序)排序: dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), levels = c("Low", "Med", "Hi"), ordered = TRUE), x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9), z = c(1, 1, 1, 2)) dd b x y z 1 Hi A 8 1 2 Med D 3 1 …
1316 r  sorting  dataframe  r-faq 


10
分组功能(tapply,by,aggregate)和* apply系列
每当我想在R中执行“ map” py任务时,我通常都会尝试使用该apply系列中的函数。 但是,我从未完全理解它们之间的区别-{ sapply,lapply等等} 如何将函数应用于输入/分组输入,输出将是什么样,甚至输入是什么-所以我经常只是遍历所有这些,直到我得到我想要的。 谁能解释什么时候使用哪一个? 我目前(可能不正确/不完整)的理解是... sapply(vec, f):输入是向量。输出是向量/矩阵,其中element i是f(vec[i]),如果f有多元素输出,则为您提供矩阵 lapply(vec, f):与相同sapply,但输出是列表? apply(matrix, 1/2, f):输入是一个矩阵。输出是一个向量,其中element i是f(矩阵的行/ col i) tapply(vector, grouping, f):输出是一个矩阵/数组,其中矩阵/数组中的元素是向量f分组g中的值,并g被推送到行/列名 by(dataframe, grouping, f):让g成为一个分组。适用f于组/数据框的每一列。漂亮地打印f每列的分组和值。 aggregate(matrix, grouping, f):类似于by,但不是将输出漂亮地打印出来,聚合将所有内容粘贴到一个数据框中。 附带的问题:我还没有学会摆弄或重塑-是否会全部取代plyr或reshape全部取代?
1040 r  lapply  sapply  tapply  r-faq 

20
按名称删除数据框列
我想从数据框中删除许多列。我知道我们可以使用类似的方法分别删除它们: df$x <- NULL 但是我希望用更少的命令来做到这一点。 另外,我知道我可以使用整数索引删除列,如下所示: df <- df[ -c(1, 3:6, 12) ] 但是我担心我的变量的相对位置可能会改变。 考虑到R的强大功能,我认为可能有比逐一删除每一列更好的方法。
874 r  dataframe  r-faq 



9
如何在不丢失信息的情况下将因子转换为整数\数字?
当我将因子转换为数字或整数时,我得到的是底层的级别代码,而不是数值。 f <- factor(sample(runif(5), 20, replace = TRUE)) ## [1] 0.0248644019011408 0.0248644019011408 0.179684827337041 ## [4] 0.0284090070053935 0.363644931698218 0.363644931698218 ## [7] 0.179684827337041 0.249704354675487 0.249704354675487 ## [10] 0.0248644019011408 0.249704354675487 0.0284090070053935 ## [13] 0.179684827337041 0.0248644019011408 0.179684827337041 ## [16] 0.363644931698218 0.249704354675487 0.363644931698218 ## [19] 0.179684827337041 0.0284090070053935 ## 5 Levels: 0.0248644019011408 0.0284090070053935 ... 0.363644931698218 as.numeric(f) …
598 r  casting  r-faq 

16
在R中的同一图中绘制两个图
我想在同一图中绘制y1和y2。 x <- seq(-2, 2, 0.05) y1 <- pnorm(x) y2 <- pnorm(x, 1, 1) plot(x, y1, type = "l", col = "red") plot(x, y2, type = "l", col = "green") 但是当我这样做时,它们并没有一起绘制在同一图中。 在Matlab中可以做到hold on,但是有人知道如何在R中做到这一点吗?
570 r  plot  ggplot2  r-faq 

18
我应该如何处理“软件包'xxx'不可用(对于R版本xyz)”警告?
我尝试使用安装软件包 install.packages("foobarbaz") 但收到警告 Warning message: package 'foobarbaz' is not available (for R version x.y.z) R为什么不认为该软件包可用? 另请参阅以下有关此问题的特定实例的问题: 我的软件包不适用于R 2.15.2 软件包'Rbbg'不可用(对于R版本2.15.2) 软件包不可用(对于R版本2.15.2) 软件包doMC不适用于R版本3.0.0警告install.packages 依赖性'Rglpk'不适用于软件包'fPortfolio' 如果我们的R版本无法使用软件包,该怎么办? R的bigvis软件包是否不适用于R版本3.0.1? 软件包'syncwave'/'mvcwt'不可用(对于R版本3.0.2)不可用软件包'diamonds' (对于R版本3.0.0)R 的plyr软件包不适用于R版本3.0.2吗? 没有在R 64 3.0.2上未安装的软件包bigmemory 软件包“ makeR”不可用(对于3.0.2版) 软件包“ RTN”不可用(对于R版本3.0.1) 安装geoR软件包 软件包“ twitterR”不可用(对于R版本3.1.0) 如何安装“ Rcpp,软件包”?我收到“程序包不可用” 程序包“数据集”不可用(对于R版本3.1.1) “程序包'rhipe”不可用(对于R版本3.1.2)”

10
如何查看功能的源代码?
我想查看功能的源代码以了解其工作原理。我知道我可以通过在提示符下键入函数名称来打印该函数: > t function (x) UseMethod("t") <bytecode: 0x2332948> <environment: namespace:base> 在这种情况下,是什么UseMethod("t")意思?如何找到这实际上是正在使用的源代码,例如:t(1:10)? 有没有当我看到之间的差异UseMethod,当我看到standardGeneric和showMethods,与with? > with standardGeneric for "with" defined from package "base" function (data, expr, ...) standardGeneric("with") <bytecode: 0x102fb3fc0> <environment: 0x102fab988> Methods may be defined for arguments: data Use showMethods("with") for currently available ones. 在其他情况下,我可以看到正在调用R函数,但是找不到这些函数的源代码。 > ts.union function (..., dframe = …
550 r  function  r-faq 

14
子集数据帧中的丢包因子级别
我有一个包含的数据框factor。当我使用subset或其他索引功能创建此数据框的子集时,将创建一个新的数据框。但是,factor即使/如果新数据帧中不存在变量,该变量将保留其所有原始级别。 在进行刻面绘图或使用依赖于因子水平的函数时,这会引起问题。 从新数据框中的因素中删除级别的最简洁方法是什么? 这是一个例子: df <- data.frame(letters=letters[1:5], numbers=seq(1:5)) levels(df$letters) ## [1] "a" "b" "c" "d" "e" subdf <- subset(df, numbers <= 3) ## letters numbers ## 1 a 1 ## 2 b 2 ## 3 c 3 # all levels are still there! levels(subdf$letters) ## [1] "a" "b" "c" "d" …
543 r  dataframe  r-factor  r-faq 

11
如何在不重新启动R的情况下卸载软件包
我想卸载软件包而不必重新启动R(主要是因为我尝试不同的方法时重新启动R令人沮丧,但冲突的软件包变得令人沮丧,但是可以想象这可以在程序中使用一个功能,然后使用另一个功能-尽管命名空间对于这种用途,引用可能是一个更好的主意)。 ?library 没有显示任何将卸载软件包的选项。 有一种建议是detach可以卸载包,但都失败了以下内容: detach(vegan) 错误detach(vegan):name参数无效 detach("vegan") 错误detach("vegan"):name参数无效 那么如何卸载包裹?
540 r  package  r-faq 



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.