Tag: r faq

我如何从源代码安装R包?

一位朋友把我带到了R的网站上 , 我真的很想去尝试一下。 但是,第一步是从源码安装一个名为RJSONIO的包。 我知道R相当好,但我不知道如何从源代码安装包。 我正在运行Mac OSX。

是否有一个内置的function来查找模式?

在R中, mean()和median()是符合你期望的标准函数。 mode()告诉你对象的内部存储模式,而不是在其参数中出现最多的值。 但是是否有一个标准的库函数来实现向量(或列表)的统计模式?

统计每个组内的行数

我有一个数据框,我想统计每个组内的行数。 我正常使用aggregate函数来aggregate数据如下: df2 <- aggregate(x ~ Year + Month, data = df1, sum) 现在,我想统计观察,但似乎无法find合适的论据。 直觉上,我认为这将如下: df2 <- aggregate(x ~ Year + Month, data = df1, count) 但是,没有这样的运气。 有任何想法吗? 一些玩具数据: set.seed(2) df1 <- data.frame(x = 1:20, Year = sample(2012:2014, 20, replace = TRUE), Month = sample(month.abb[1:3], 20, replace = TRUE))

if / while(condition){:缺less需要TRUE / FALSE的值时出错

我收到了这个错误信息: Error in if (condition) { : missing value where TRUE/FALSE needed 要么 Error in while (condition) { : missing value where TRUE/FALSE needed 这是什么意思,我该如何预防呢?

通过名称删除数据框列

我想从数据框中删除一些列。 我知道我们可以使用类似下面的方法单独删除它们: df$x <- NULL 但我希望用更less的命令来做到这一点。 另外,我知道我可以像这样使用整数索引来删除列: df <- df[ -c(1, 3:6, 12) ] 但是我担心我的variables的相对位置可能会改变。 鉴于R是多么强大,我认为可能比逐一删除每一列更好。

计算组的平均值(或其他汇总统计)并分配给原始数据

我想计算分组variables(“组”)每个级别内的数值variables(“值”)的mean (或任何其他长度为1的摘要统计,例如, min , max , length , sum )。 汇总统计信息应分配给与原始数据具有相同长度的新variables。 也就是说,原始数据的每一行都应该有一个对应于当前组值的值 – 数据集不应该被折叠为每组一行。 例如,考虑组mean : 之前 id group value 1 a 10 2 a 20 3 b 100 4 b 200 后 id group value grp.mean.values 1 a 10 15 2 a 20 15 3 b 100 150 4 b 200 150

我如何处理特殊字符像\ ^ $。?* | +()[{在我的正则expression式?

我想匹配正则expression式特殊字符 \^$.?*|+()[{ 。 我试过了: x <- "a[b" grepl("[", x) ## Error: invalid regular expression '[', reason 'Missing ']'' (相当于stringr::str_detect(x, "[")或者stringi::stri_detect_regex(x, "[") 。) 加倍的价值逃脱它不起作用: grepl("[[", x) ## Error: invalid regular expression '[[', reason 'Missing ']'' 也不使用反斜杠: grepl("\[", x) ## Error: '\[' is an unrecognized escape in character string starting ""\[" 我如何匹配特殊字符? 一些特殊情况下,这个问题是旧的,写得足够好,因为它是厚颜无耻的closures作为重复: R正则expression式中的转义期 如何在R中跳出一个问号? 在正则expression式中转义pipe道(“|”)

R中的赋值运算符:“=”和“< – ”

R中赋值运算符'='和'< – '有什么不同? 我知道,这个例子所显示的运营商略有不同 x <- y <- 5 x = y = 5 x = y <- 5 x <- y = 5 # Error in (x <- y) = 5 : could not find function "<-<-" 但这是唯一的区别吗?

用最新的非NA值replaceNA

在data.frame(或data.table)中,我想“填充”具有最近的非NA值的NA。 一个简单的例子,使用vector(而不是data.frame )如下: > y <- c(NA, 2, 2, NA, NA, 3, NA, 4, NA, NA) 我想要一个函数fill.NAs() ,它允许我构造yy ,使得: > yy [1] NA NA NA 2 2 2 2 3 3 3 4 4 我需要对许多(总计data.frame )小型数据data.frame ( data.frame )重复这个操作,其中一行是NA,它的所有条目都是。 什么是解决问题的好方法? 我制作的丑陋解决scheme使用这个function: last <- function (x){ x[length(x)] } fill.NAs <- function(isNA){ if (isNA[1] == 1) { […]

在数据框中对组内的行进行编号

使用类似这样的数据框: set.seed(100) df <- data.frame(cat = c(rep("aaa", 5), rep("bbb", 5), rep("ccc", 5)), val = runif(15)) df <- df[order(df$cat, df$val), ] df cat val 1 aaa 0.05638315 2 aaa 0.25767250 3 aaa 0.30776611 4 aaa 0.46854928 5 aaa 0.55232243 6 bbb 0.17026205 7 bbb 0.37032054 8 bbb 0.48377074 9 bbb 0.54655860 10 bbb 0.81240262 11 ccc […]