相关疑难解决方法(0)

按组选择第一行

来自这样的数据框架

test <- data.frame('id'= rep(1:5,2), 'string'= LETTERS[1:10])
test <- test[order(test$id), ]
rownames(test) <- 1:10

> test
    id string
 1   1      A
 2   1      F
 3   2      B
 4   2      G
 5   3      C
 6   3      H
 7   4      D
 8   4      I
 9   5      E
 10  5      J
Run Code Online (Sandbox Code Playgroud)

我想用每个id/string对的第一行创建一个新的.如果sqldf在其中接受R代码,则查询可能如下所示:

res <- sqldf("select id, min(rownames(test)), string 
              from test 
              group by id, string")

> res
    id string
 1   1      A
 3   2      B
 5   3      C
 7   4      D
 9   5      E …
Run Code Online (Sandbox Code Playgroud)

r dataframe sqldf

67
推荐指数
7
解决办法
8万
查看次数

R中的data.frame和data.table之间有什么实际区别

显然在我的上一个问题中,我表现出了data.frame和之间的混淆data.table.不可否认,我没有意识到有区别.

所以我读了每个人的帮助,但是在实际的日常用语中,有什么不同,含义是什么以及每个用于什么会有助于指导我们适当的用法?

r data.table

44
推荐指数
3
解决办法
5万
查看次数

通过knitr,gWidgetsWWW使用时出现data.table错误

我正在尝试使用gWidgetsWWW并遇到一个奇怪的错误.我创建了一个带有处理程序的按钮,用于knit2html报告,该报告使用了data.table赋值运算符":=".报告回来时出现了这个错误:

错误:: =定义仅用于j,并且(当前)仅用于一次; 即,DT [i,col:= 1L]和DT [,newcol:= sum(colB),by = colA]可以,但不是DT [i,col]:= 1L,而不是DT [i] $ col: = 1L而不是DT [,{newcol1:= 1L; newcol2:= 2L}].请参阅帮助(":=").检查is.data.table(DT)是否为TRUE.

该报告直接使用knit2html生成,也通过RStudio的"Knit HTML"按钮生成,所以我不确定为什么它会在处理程序调用knit2html时失败.

这是一个gWidgetsWWW窗口"test_gui.R":

library(gWidgetsWWW)
library(knitr)

w<-gwindow("Test Window")
g<-ggroup(horizontal=F,cont=w)
b<-gbutton("Report Button",cont=g,handler=function(h,...){
    knit2html("test_report.Rmd")
    localServerOpen("test_report.html")
})

visible(w)<-T
Run Code Online (Sandbox Code Playgroud)

这是一个产生错误的R Markdown Doc示例:

Test Report
===========

```{r test_chunk}
library(data.table)

df<-data.frame(State=rownames(USArrests),USArrests)

data.table(df)[,State:=tolower(State)]

```
Run Code Online (Sandbox Code Playgroud)

不知道为什么,但是当我调用localServerOpen("test_gui.R")并单击按钮时,我收到错误...

有任何想法吗?

r gwidgets knitr data.table

11
推荐指数
2
解决办法
1301
查看次数

data.frame和data.table的R对象有相同的类型吗?

我对R来说还是很新的,最近发现了一些我不确定它意味着什么.data.framedata.table有相同的类型?一个对象可以有多种类型吗?将"汽车"转换data.frame为后data.table,我显然无法应用适用于data.frames和不适用的功能data.table,但class()显示"汽车"仍然是一个data.frame.谁知道为什么?

> class(cars)
[1] "data.frame"
> cars<-data.table(cars)
> class(cars)
[1] "data.table" "data.frame"
Run Code Online (Sandbox Code Playgroud)

r dataframe data.table

2
推荐指数
1
解决办法
1074
查看次数

标签 统计

r ×4

data.table ×3

dataframe ×2

gwidgets ×1

knitr ×1

sqldf ×1