小编bum*_*bee的帖子

R:可行的快速(条件)子集

我想对数据行进行子集化

library(data.table); set.seed(333); n <- 100
dat <- data.table(id=1:n, x=runif(n,100,120), y=runif(n,200,220), z=runif(n,300,320))

> head(dat)
   id        x        y        z
1:  1 109.3400 208.6732 308.7595
2:  2 101.6920 201.0989 310.1080
3:  3 119.4697 217.8550 313.9384
4:  4 111.4261 205.2945 317.3651
5:  5 100.4024 212.2826 305.1375
6:  6 114.4711 203.6988 319.4913
Run Code Online (Sandbox Code Playgroud)

分几个阶段。我知道我可以subset(.)顺序申请以实现这一目标。

> s <- subset(dat, x>119)
> s <- subset(s, y>219)
> subset(s, z>315)
   id        x        y        z
1: 55 119.2634 219.0044 315.6556
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要使它自动化,并且可能会发生子集为空的情况。在这种情况下,我想跳过导致空集的步骤。例如,如果我的数据是

dat2 <- dat[1:50]
> s <-subset(dat2,x>119) …
Run Code Online (Sandbox Code Playgroud)

r subset data.table

7
推荐指数
1
解决办法
110
查看次数

Sublime Text:手动安装包控件

我无法使用简单的安装代码,因为代理挡住了我的出路。不幸的是,我只是没有得到网页上的说明。

\n\n
1. Click the Preferences > Browse Packages\xe2\x80\xa6 menu\n2. Browse up a folder and then into the Installed Packages/ folder\n3. Download Package Control.sublime-package and copy it into the Installed Packages/ directory\n4. Restart Sublime Text\n
Run Code Online (Sandbox Code Playgroud)\n\n

到底是什么2.意思?我想我确实不明白“浏览文件夹然后进入...”是什么意思。

\n\n

我确实单击了Browse Packages菜单并使用弹出的资源管理器窗口在我的文档目录中创建了一个名为 的文件夹Installed Packages。但下一步是什么?由于我只是在常规的资源管理器窗口中,因此我不知道 sublime 现在如何了解此文件夹。

\n

sublimetext3 package-control

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

通过减少data.table进行排序

require(data.table)    
set.seed(333)
t <- data.table(old=1002:2001, dif=sample(1:10,1000, replace=TRUE))
t$new <- t$old + t$dif; t$foo <- rnorm(1000); t$dif <- NULL
i <- data.table(id=1:3, start=sample(1000:1990,3))


> i
   id start
1:  1  1002
2:  2  1744
3:  3  1656

> head(t)
    old  new        foo
1: 1002 1007 -0.7889534
2: 1003 1004  0.3901869
3: 1004 1014  0.7907947
4: 1005 1011  2.0964612
5: 1006 1007  1.1834171
6: 1007 1015  1.1397910
Run Code Online (Sandbox Code Playgroud)

I would like to delete time points from points such that only those rows remain where …

join r data.table

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

r在条形图中添加线条或线段

我有一个堆叠的水平条形图,只有一个条形图.我想标记不同的段,每个标签都在相应的段开始处.但是,由于某些线段非常窄,因此标签需要处于不同的水平,并且应通过直线与条形连接,如本例所示.

示例条形图

我可以使用barplot()和使用标签创建条形图,mtext(..., side=3, line=1,...)但无法获取线条.segments()似乎不起作用,因为y方向的坐标没有正确功能(或者我还没有想出条形图的坐标系).

有没有人提示如何使用基本图形创建这些线?

plot r bar-chart

3
推荐指数
1
解决办法
545
查看次数

使用 %in% 对 data.table 进行子集化

我有一个数据表

library(data.table)
DT <- data.table(a=c(1,2,3,4), b=c(4,4,4,4), x=c(1,3,5,5))
> DT
   a b x
1: 1 4 1
2: 2 4 3
3: 3 4 5
4: 4 4 5
Run Code Online (Sandbox Code Playgroud)

我想选择x等于a或 的行b。显然,我可以使用

> DT[x==a | x==b]
   a b x
1: 1 4 1
Run Code Online (Sandbox Code Playgroud)

这给出了正确的结果。然而,对于我认为的许多专栏,以下内容应该同样有效

> DT[x%in%c(a,b)]
   a b x
1: 1 4 1
2: 2 4 3
Run Code Online (Sandbox Code Playgroud)

但它给出了一个对我来说不直观的不同结果。有人可以帮忙吗?

r subset data.table

3
推荐指数
1
解决办法
1189
查看次数

来自data.table的样本

我有一些data.table,我想从中选择一个随机子集,但仅用于某些操作。

假设数据是

dat <- data.table(id=1:100, group=sample(1:20,100, replace=TRUE), a=runif(100), b=rnorm(100))
Run Code Online (Sandbox Code Playgroud)

我想做两件事:

  1. 计算每组的ID数
  2. 从每个组中随机选择一个ID,并将其值记录在ab

我可以关注如何动态地从data.table中提取一些随机行并选择

dat[n=.N, a=a[sample(.N,1)], b=b[sample(.N,1)], group]
Run Code Online (Sandbox Code Playgroud)

但是我很害怕,这将选择ab彼此独立。有没有选择相同的方法?

r subset data.table

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

从两个列表到一个通过绑定元素

我有两个带有两个元素的列表,

l1 <- list(data.table(id=1:5, group=1), data.table(id=1:5, group=1))
l2 <- list(data.table(id=1:5, group=2), data.table(id=1:5, group=2))
Run Code Online (Sandbox Code Playgroud)

我想rbind(.)同时使用这两个元素,从而产生一个包含两个元素的新列表。

> l
[[1]]
    id group
 1:  1     1
 2:  2     1
 3:  3     1
 4:  4     1
 5:  5     1
 6:  1     2
 7:  2     2
 8:  3     2
 9:  4     2
10:  5     2

[[2]]
    id group
 1:  1     1
 2:  2     1
 3:  3     1
 4:  4     1
 5:  5     1
 6:  1     2
 7:  2     2
 8:  3     2
 9:  4 …
Run Code Online (Sandbox Code Playgroud)

r list lapply rbind

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

标签 统计

r ×6

data.table ×4

subset ×3

bar-chart ×1

join ×1

lapply ×1

list ×1

package-control ×1

plot ×1

rbind ×1

sublimetext3 ×1