小编Wim*_*pel的帖子

从向量中删除向量元素

这看起来很容易,但我一直在撞头。

我有数字向量 v1

v1 <- c(1,1,3,5,7,7)
Run Code Online (Sandbox Code Playgroud)

我有一个数字向量 v2。v2 始终是 v1 的子集
我想从 v1 中删除 v2 中的所有元素,但 每个 v2 元素只有一个(并且精确到一个)v1 元素。

期望的输出

如果v2 <- c(3,5)我想c(1,1,7,7)避免 v1. 这个很容易使用v1[-match(v2, v1)]
如果v2 <- c(1,7)我想c(1,3,5,7)避免 v1. 也,v1[-match(v2, v1)]有诀窍。
如果v2 <- c(1,1)我想c(3,5,7,7)避免 v1. 现在v1[-match(v2, v1)]返回[1] 1 3 5 7 7.. 不是我想要的。

r

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

传单添加多段线

我见过类似的问题,但到目前为止没有一个符合我的需求(至少在我理解的范围内),所以如果这个问题已经得到解答,我会提前道歉。我也是一个 R 新手。

我有一个数据框,每行包含两组纬度/经度。实际数据包含数百行和许多列相关数据。我正在绘制两组纬度/经度的点,并希望将每对点连接为一条单独的线。下面是结果应该是什么样子的示例。

[![在此处输入图像描述][1]][1]

这是数据的简化示例。将有重复的事件和位置值。

Event_lat   Event_lon   Event   Location    Location_latitude   Location_longitude
40.791151   -124.054008 704832643   60005   40.790961   -124.1825609
38.900882   -122.660353 704653051   60009   38.873889   -122.709722
38.921488   -122.600049 704681147   60011   38.85111099 -122.593333
38.921488   -122.600049 704681147   60011   38.85111099 -122.593333
39.141877   -123.044724 706777142   60012   39.22794396 -123.064722
38.928113   -122.611386 708644013   60016   38.98950003 -122.7695828
39.02361    -122.72195  708582623   60016   38.98950003 -122.7695828
38.87586    -122.842684 708336092   60016   38.98950003 -122.7695828
39.239926   -123.145497 709020144   60017   39.24138798 -123.2163878
39.3307 -123.221674 708875205   60017   39.24138798 -123.2163878
Run Code Online (Sandbox Code Playgroud)

以下是映射点的代码的简化示例:

library(leaflet)
myData <-read.csv("Book1.csv",header=TRUE, sep=",")
leaflet()%>%
  addTiles() %>% …
Run Code Online (Sandbox Code Playgroud)

r leaflet

6
推荐指数
2
解决办法
4641
查看次数

根据任何选定列中的值对 data.table 进行子集化的有效方法

假设我有一个包含 6 列的 data.table

library(data.table)
set.seed(123)
dt <- data.table( id = 1:100,
                  p1 = sample(1:10, 100, replace = TRUE ),
                  p2 = sample(1:10, 100, replace = TRUE ),
                  p3 = sample(1:10, 100, replace = TRUE ),
                  p4 = sample(1:10, 100, replace = TRUE ),
                  p5 = sample(1:10, 100, replace = TRUE ) )
Run Code Online (Sandbox Code Playgroud)

现在,我想在 p1 - pn 列(此处:p1-p5)上对这个 data.table 进行子集化。我想保留任何p 列包含10.

对于这个小样本data.table,这可以手动完成

test1 <- dt[ p1 == 10 | p2 == 10 | p3 == 10 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

R:检查数据框的值是否在其他数据框的范围内

我正在寻找一种方法来从另一个数据帧中的一个数据帧中查找信息,从另一个数据帧中获取一个值,并将其传递回第一帧。

示例数据:

我有一个名为“ x”的数据框

x <- structure(list(from = c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L
), to = c(2L, 3L, 4L, 5L, 6L, 2L, 3L, 4L, 5L, 6L), number = c(30, 
30, 30, 33, 34, 35, 36, 37, 38, 39), name = c("region 1", "region 2", 
"region 3", "region 4", "region 5", "region 6", "region 7", "region 8", 
"region 9", "region 10")), .Names = c("from", "to", "number", 
"name"), row.names = c(NA, -10L), class = "data.frame")

#   from …
Run Code Online (Sandbox Code Playgroud)

r

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

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

当数据为POSIXct时,ggplotly()不显示geom_vline / geom_hline

我正在尝试制作带有“时间标记”的图形。这些时间标记是某些日期的垂直线。时间数据是POSIXct格式。我想使用Plotly的出色交互界面,并在其中使用ggplot对象。

问题是在使用ggplotly()之后,这些“时间标记”没有显示出来。我已经尝试过了,plotly::add_segments()但是没有用。这是两个可复制的示例:

1.使用非POSIXct数据可以正常工作

# dummy dataset
df2 = data.frame(id = 1:10, measure = runif(10, 0, 20))
events2 = data.frame(number = c(2,3,8))
# ggplot graph
p2 = ggplot() + geom_line(data = df2, aes(x = id, y = measure))  +
  geom_vline(data = events2, aes(xintercept = events2$number), color = "red")
p2
# plotly graph that displays the geom_vline properly
ggplotly(p2)
Run Code Online (Sandbox Code Playgroud)

2.使用POSIXct时,数据无法显示正确的结果

# dummy dataset
df = data.frame(date = seq(as.POSIXct("2017-07-01", tz = "UTC", format = "%Y-%m-%d"),
                           as.POSIXct("2018-04-15", tz = "UTC", format = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 posixct plotly geom-vline

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

使用 data.table 进行嵌套分组中的前 n 个

目标:按季度和名称分组我希望按计数获得前 n 个名称(请参见下面的示例)。因此,top 1 的所需输出(对于下面的示例)将是:

2019 Q1  Klaus 2
2019 Q2   Karl 3
Run Code Online (Sandbox Code Playgroud)

由于这只是一个简单的示例,因此我还希望获得按季度计数和名称排列的前 4、5 名等。您对如何实现这一点有什么好的想法吗data.table(不,dplyr请)。非常感谢!

library(data.table)

dt <- data.table(x = c("2019 Q1", "2019 Q1", "2019 Q1", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2"),
                 y = c("Klaus", "Gustav", "Klaus", "Karl", "Karl", "Karl", "Stefan"))

# Structure of dt
# x      y
# 1: 2019 Q1  Klaus
# 2: 2019 Q1 Gustav
# 3: 2019 Q1  Klaus
# 4: 2019 Q2   Karl
# 5: 2019 Q2 …
Run Code Online (Sandbox Code Playgroud)

r top-n data.table

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

标签 统计

r ×6

data.table ×2

geom-vline ×1

ggplot2 ×1

leaflet ×1

plotly ×1

posixct ×1

python ×1

top-n ×1