Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 切片数据帧的第一行和包含日期的附加行_R_Dplyr - Fatal编程技术网

R 切片数据帧的第一行和包含日期的附加行

R 切片数据帧的第一行和包含日期的附加行,r,dplyr,R,Dplyr,我想获取数据帧的第一行(每周更改一次)以及包含参考日期的一行(这是一个常量),以便对它们执行数学运算 我可以使用dplyr::slice()获取第一行,但是关于如何在同一个调用中返回额外的行,有什么想法吗 library(dplyr) df <- data_frame(x = c(10, 45, 65, 10), dt = as.POSIXct("2018-01-01", tz = "GMT")) slice(df, 1) 库(dplyr) df我

我想获取数据帧的第一行(每周更改一次)以及包含参考日期的一行(这是一个常量),以便对它们执行数学运算

我可以使用
dplyr::slice()
获取第一行,但是关于如何在同一个调用中返回额外的行,有什么想法吗

library(dplyr)

df <- data_frame(x = c(10, 45, 65, 10),
                 dt = as.POSIXct("2018-01-01", tz = "GMT"))


slice(df, 1)
库(dplyr)

df我会使用
dplyr::filter
,因为它允许您使用OR语句提供多个条件。然后,我们可以根据所需的条件或特定的行号(由
dplyr::row_number()
函数生成)进行过滤:

df%>%
过滤器(x==65 |行数()==1)
#一个tibble:2x2
x dt
1    10 2018-01-01 00:00:00
2    65 2018-01-01 00:00:00

我会使用
dplyr::filter
,因为它允许您使用OR语句提供多个条件。然后,我们可以根据所需的条件或特定的行号(由
dplyr::row_number()
函数生成)进行过滤:

df%>%
过滤器(x==65 |行数()==1)
#一个tibble:2x2
x dt
1    10 2018-01-01 00:00:00
2    65 2018-01-01 00:00:00

我们可以使用
切片
将第一行('1')的行索引与
匹配得到的行索引连接起来
从'x'列中提取值'65'

df %>%
   slice(c(1, match(65, x)))
#    A tibble: 2 x 2
#     x dt                 
#  <dbl> <dttm>             
#1    10 2018-01-01 00:00:00
#2    65 2018-01-01 00:00:00
df%>%
切片(c(1,匹配(65,x)))
#一个tibble:2x2
#x dt
#                
#1    10 2018-01-01 00:00:00
#2    65 2018-01-01 00:00:00

我们可以使用
切片
将第一行('1')的行索引与
匹配得到的行索引连接起来
从'x'列中提取值'65'

df %>%
   slice(c(1, match(65, x)))
#    A tibble: 2 x 2
#     x dt                 
#  <dbl> <dttm>             
#1    10 2018-01-01 00:00:00
#2    65 2018-01-01 00:00:00
df%>%
切片(c(1,匹配(65,x)))
#一个tibble:2x2
#x dt
#                
#1    10 2018-01-01 00:00:00
#2    65 2018-01-01 00:00:00

如果它们是同一行,则希望返回两次?两个不同的行。答案如下。谢谢。如果它们是同一行,您希望返回两次吗?两行不同。答案如下。谢谢,太好了!谢谢,太好了!谢谢,谢谢。很好的解决方案,谢谢。很好的解决方案。