此附加信息可能会有所帮助。这是我想要做的: 这会引发更多的光,但这就是我想要的。假设您有一个类似下面的数据 -
Region Open Store
120..141 + France
145..2115 + Germany
3322..5643 + Wales
5646..7451 - Scotland
7454..8641 - Mexico
8655..9860 - India
9980..11413 + Zambia
11478..1261 - Nicaragua
12978..1318 + Sweeden
我试图做的是选择找到第二个元素(141)和连续的第一个元素(143)之间的差异,如果它们符合某个值并且它们具有相同的符号(+或 - ),则列出他们所有的商店在一起。
答案 0 :(得分:6)
使用sapply
并将[
作为函数传递给它,并告诉它要提取第二个元素。
# Create your data set
dat <- list(c(100, 150), c(201, 202), c(147, 269), c(301, 401))
dat
#[[1]]
#[1] 100 150
#
#[[2]]
#[1] 201 202
#
#[[3]]
#[1] 147 269
#
#[[4]]
#[1] 301 401
#
sapply(dat, "[", 2)
#[1] 150 202 269 401
答案 1 :(得分:2)
我同意@Dason理解机制是很重要的(即你不能像R一样对待R),但是如果你仍然难以理解2.6小时,那么这可能会有所帮助:
dat <- list(c(100, 150), c(201, 202), c(147, 269), c(301, 401))
second <- sapply(dat, "[", 2)
first <- sapply(dat[2:length(second)], "[", 1)
second[1:length(first)] - first
了解更多您真正想要做的事情会有所帮助,因为我并不完全相信这是您正在寻找的最终结果。