小编med*_*oll的帖子

子集化数据帧中的丢弃因子级别

我有一个包含因子的数据框.当我使用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" "e"
Run Code Online (Sandbox Code Playgroud)

r dataframe r-faq r-factor

510
推荐指数
11
解决办法
36万
查看次数

483
推荐指数
7
解决办法
61万
查看次数

增加(或减少)R进程可用的内存

我想增加(或减少)R可用的内存量.实现此目的的方法有哪些?

memory-leaks memory-management r

115
推荐指数
6
解决办法
19万
查看次数

在R中命名变量的首选样式是什么?

在R代码中,您喜欢命名变量和函数的约定?

据我所知,有几种不同的惯例,所有这些惯例都在喧嚣的和谐中共存:

1.期间分隔符的使用,例如

  stock.prices <- c(12.01, 10.12)
  col.names    <- c('symbol','price')
Run Code Online (Sandbox Code Playgroud)

优点: 在R社区中具有历史优先权,在整个R核心中普遍存在,并且由Google的R风格指南推荐.

缺点: 充满了面向对象的内涵,让R新手感到困惑

2.使用下划线

  stock_prices <- c(12.01, 10.12)
  col_names    <- c('symbol','price')
Run Code Online (Sandbox Code Playgroud)

优点: 许多编程语言中的常见惯例; 受到Hadley Wickham风格指南的青睐,并在ggplot2和plyr包中使用.

缺点: R程序员历史上没有使用过; 令人烦恼地映射到Emacs-Speaks-Statistics中的'< - '运算符(可以用'ess-toggle-underscore'改编).

3.混合资本化的使用(camelCase)

  stockPrices <- c(12.01, 10.12)
  colNames    <- c('symbol','price')
Run Code Online (Sandbox Code Playgroud)

优点:似乎在多个语言社区得到广泛采用.

缺点:有最近的先例,但没有历史使用(在R基础或其文档中).

最后,好像它没有足够的混淆,我应该指出谷歌风格指南争论变量的点符号,但函数的混合大写.

R包中缺乏一致的样式在几个层面上存在问题.从开发人员的角度来看,它使维护和扩展其他代码变得困难(尤其是其风格与您自己的风格不一致).从R用户的角度来看,不一致的语法通过将概念表达的方式相乘来加深R的学习曲线(例如,日期转换函数asDate(),as.date()或as_date()?不,它就是.日期()).

coding-style r naming-conventions

107
推荐指数
4
解决办法
2万
查看次数

如何在没有X11的服务器上运行R,并避免破坏依赖性

我在一个大型EC2 Ubuntu实例上运行R 2.9,加载了RAM,但是没有终端.当我加载具有显示依赖性的库,如sqldf包时,我收到以下错误:

library(sqldf)
...
Loading required package: tcltk
Loading Tcl/Tk interface ... Error in fun(...) : couldn't connect to display "localhost:11.0"
Error : .onLoad failed in 'loadNamespace' for 'tcltk'
Error: package 'tcltk' could not be loaded
Run Code Online (Sandbox Code Playgroud)

这似乎是一个普遍的问题,我想知道其他人是如何解决它的.安装X11服务器不是理想的解决方案.

x11 r

24
推荐指数
2
解决办法
2万
查看次数

R中的拟合优度函数

您在R中使用哪些函数来拟合数据曲线并测试曲线的拟合程度?什么结果被认为是好的?

statistics r curve-fitting

23
推荐指数
4
解决办法
2万
查看次数

从宽到高格式重塑时间序列数据(用于绘图)

我有一个包含多个时间序列返回的数据框,存储在列中.

第一列包含日期,后续列是独立的时间序列,每个列都有一个名称.列标题是变量名称.

## I have a data frame like this
t <- seq(as.Date('2009-01-01'),by='days',length=10)
X <- rnorm(10,0,1)
Y <- rnorm(10,0,2)
Z <- rnorm(10,0,4)

dat <- data.frame(t,X,Y,Z)

## which appears as
           t          X          Y         Z
1 2009-01-01 -1.8763317 -0.1885183 -6.655663
2 2009-01-02 -1.3566227 -2.1851226 -3.863576
3 2009-01-03 -1.3447188  2.4180249 -1.543931
Run Code Online (Sandbox Code Playgroud)

我想将每个时间序列绘制成一个单独的图上的一条线,在一个点阵中,每个图用变量名标记.

要使用晶格绘制此图,数据必须采用高格式,如下所示:

           t symbol       price
1 2009-01-01      X -1.8763317
2 2009-01-02      Y -0.1885183
2 2009-01-02      Z -6.655663
Run Code Online (Sandbox Code Playgroud)

这样做有什么好的函数调用?

r time-series

19
推荐指数
4
解决办法
1万
查看次数

R中类似SQL的功能

我习惯在SQL写数据操作的逻辑,现在我正在学习RI发现自己有时只是想要做的东西,会在SQL简单,但我必须要学会为R一堆东西做在R相同的操作数据框.有简单的工作吗?

sql r sqldf

12
推荐指数
2
解决办法
6972
查看次数

R中的累积和,移动平均值和SQL"group by"等价物

在R中创建移动平均线或滚动总和的最有效方法是什么?你如何与"分组"一起进行滚动功能?

average r time-series moving-average

8
推荐指数
1
解决办法
3515
查看次数

确定矩阵在R编程语言中是否可对角化

我有一个矩阵,我想知道它是否可以对角化.我如何用R编程语言执行此操作?

r matrix

7
推荐指数
2
解决办法
6608
查看次数