当前位置: 首页 > 知识库问答 >
问题:

dplyr::排列拒绝按时间戳列排列数据帧?

欧桐
2023-03-14

我有以下数据框架(这里是样本):

df <- structure(list(user_id = c(1L, 1L, 1L, 1L, 1L, 1L), obs_id = c(1L, 
2L, 2L, 2L, 2L, 2L), scroll_id = c(3L, 1L, 2L, 3L, 4L, 5L), timestamp = c(-1.74966971796047, 
-1.70403832189443, -1.70379906928687, -1.70361867040459, -1.70347088963619, 
-1.70319128699835), row_num = 1:6, scroll_length = c(6, 9, 14, 
12, 13, 26), x_mean = c(-1.74134749014902, -1.19087086808828, 
1.36178725012622, -1.32786301490502, 1.24184201608646, -1.31953110973881
), y_mean = c(-4.93507461932646, 0.0304680987883223, 0.140001980341645, 
0.61911843405746, 0.434230282460559, 0.438563278736709), dx_mean = c(-0.514034686928457, 
-0.709482080612108, 0.924636289935977, -0.702980646737082, 0.515080876392673, 
-0.359676884238743), dy_mean = c(0.972265996197407, -0.692113718739584, 
-0.162463490249733, -0.373682612876388, -0.0663766957581004, 
0.293619375985922)), .Names = c("user_id", "obs_id", "scroll_id", 
"timestamp", "row_num", "scroll_length", "x_mean", "y_mean", 
"dx_mean", "dy_mean"), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame"))

我想按时间戳列排列,但我收到以下错误:

data %>% arrange(timestamp)
data %>% arrange("timestamp")

arrange_impl错误(。data,dots):参数1是不支持的矩阵类型

请建议如何使其工作。我知道时间戳是一个函数和矩阵,但这里它是一个列,我“希望”dplyr“理解”它是一列。

正如@sotos所问:

sessionInfo():

R version 3.4.4 (2018-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.1 LTS

Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_IL.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_IL.UTF-8   
 [6] LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_IL.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_IL.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] bindrcpp_0.2.2      rebus_0.1-3         philentropy_0.2.0   reshape2_1.4.3      broom_0.5.0         dummies_1.5.6       hms_0.4.2          
 [8] anytime_0.3.1       data.table_1.11.8   bit64_0.9-7         bit_1.1-14          car_3.0-2           carData_3.0-2       caret_6.0-80       
[15] lattice_0.20-35     xgboost_0.71.2      doSNOW_1.0.16       snow_0.4-3          doMC_1.3.5          iterators_1.0.10    foreach_1.4.4      
[22] randomForest_4.6-14 htmlwidgets_1.3     plotly_4.8.0        jsonlite_1.5        pROC_1.13.0         knitr_1.20          lubridate_1.7.4    
[29] MASS_7.3-49         chron_2.3-53        forcats_0.3.0       stringr_1.3.1       dplyr_0.7.7         purrr_0.2.5         readr_1.1.1        
[36] tidyr_0.8.2         tibble_1.4.2        ggplot2_3.1.0       tidyverse_1.2.1    

loaded via a namespace (and not attached):
 [1] nlme_3.1-137          dimRed_0.1.0          httr_1.3.1            tools_3.4.4           backports_1.1.2       R6_2.3.0             
 [7] rpart_4.1-13          rebus.base_0.0-3      lazyeval_0.2.1        colorspace_1.3-2      nnet_7.3-12           withr_2.1.2          
[13] tidyselect_0.2.5      curl_3.1              compiler_3.4.4        cli_1.0.1             rvest_0.3.2           xml2_1.2.0           
[19] scales_1.0.0          sfsmisc_1.1-2         DEoptimR_1.0-8        robustbase_0.93-3     RApiDatetime_0.0.4    digest_0.6.18        
[25] rebus.unicode_0.0-2   foreign_0.8-70        rio_0.5.10            pkgconfig_2.0.2       htmltools_0.3.6       rlang_0.3.0.1        
[31] readxl_1.1.0          ddalpha_1.3.4         rstudioapi_0.8        bindr_0.1.1           zip_1.0.0             ModelMetrics_1.2.0   
[37] magrittr_1.5          Matrix_1.2-14         Rcpp_0.12.19          munsell_0.5.0         abind_1.4-5           stringi_1.2.4        
[43] yaml_2.2.0            plyr_1.8.4            recipes_0.1.3         grid_3.4.4            pls_2.7-0             crayon_1.3.4         
[49] rebus.datetimes_0.0-1 haven_1.1.2           splines_3.4.4         pillar_1.3.0          rebus.numbers_0.0-1   codetools_0.2-15     
[55] stats4_3.4.4          CVST_0.2-2            magic_1.5-9           glue_1.3.0            modelr_0.1.2          cellranger_1.1.0     
[61] gtable_0.2.0          kernlab_0.9-27        assertthat_0.2.0      DRR_0.0.3             openxlsx_4.1.0        gower_0.1.2          
[67] prodlim_2018.04.18    class_7.3-14          survival_2.42-3       viridisLite_0.3.0     geometry_0.3-6        timeDate_3043.102    
[73] RcppRoll_0.3.0        lava_1.6.3            ipred_0.9-7          

共有2个答案

侯焱
2023-03-14
df %>% arrange(timestamp)

arrange() from dplyr arranges as below in ascending order
# A tibble: 6 x 10
  user_id obs_id scroll_id timestamp row_num scroll_length x_mean  y_mean dx_mean dy_mean
    <int>  <int>     <int>     <dbl>   <int>         <dbl>  <dbl>   <dbl>   <dbl>   <dbl>
1       1      1         3     -1.75       1             6  -1.74 -4.94    -0.514  0.972 
2       1      2         1     -1.70       2             9  -1.19  0.0305  -0.709 -0.692 
3       1      2         2     -1.70       3            14   1.36  0.140    0.925 -0.162 
4       1      2         3     -1.70       4            12  -1.33  0.619   -0.703 -0.374 
5       1      2         4     -1.70       5            13   1.24  0.434    0.515 -0.0664
6       1      2         5     -1.70       6            26  -1.32  0.439   -0.360  0.294 
轩辕瑞
2023-03-14

感谢所有的评论,我已经找到了一个解决方案:

我的 df 数据帧已缩放并居中 - 生成 df 返回的函数

scale(df)

当我打印str(df)时,我看到属性表示它是居中的和缩放的。

当转换到< code>data.table时,它解决了这个问题:

df %>% as.data.table() %>% dplyr::arrange(obs_id, user_id, scroll_id, timestamp)

如果我错了,请纠正我。

 类似资料:
  • 我正在生成1和0的数据帧,如下所示: 由reprex软件包(v0.1.1.9000)于2018-01-08创建。 我需要按变量的总和升序排列,然后按每个变量的降序排列。使用相当简单。然而,我想有一个更稳健的安排方法。例如,如果更改为,那么最后一行也必须更改为。我尝试使用整齐的选择器进行排列,就像使用函数一样,但出现以下错误: 由reprex软件包(v0.1.1.9000)于2018-01-08创建

  • 我试图弄清楚如何使用tidyverse来动态排列数据帧。我以前用arrange_但是现在不推荐用了。 一些更详细的细节。我需要安排数字,如果不是,则升序。我有内置的逻辑,但我不知道如何让它与安排一起工作。 一些数据: 某些代码: 有人有使用tidyverse的解决方案吗? 谢谢

  • 我开始在我的项目中使用primefaces,我马上就遇到了问题。我有一个列表,其中包含一些我用实体管理器从数据库中获取的东西,我在primefaces数据表的视图中显示了它。在我的后台bean中,我有:List getList(),在这里我使用实体管理器从数据库中检索记录,并立即返回。。 和myService: 我的豆子: 视图: 这种方式primefaces排序不起作用,我在堆栈上的某个地方读到

  • 我遇到了一个问题,我需要将两列实体相乘来排序,为了想象,实体是: 我不能使用命名查询,因为我的查询基于用户输入进行了大量筛选(不能将where子句放入查询,因为如果用户没有选择任何值,where子句不能只在查询中)。 为了简单点。我需要类似findAll(谓词,Pageable)的东西,但我需要强制查询按“amount*unitPrice”对其进行排序,但也要保持我的Preditate(过滤器)和

  • 我用的是拉威尔的背包,积垢舱。 如何将orderby()用于多列? 例子: 我看到src和orderby只接受一个参数。 有什么建议吗?

  • 我在学校的任务是创建一个程序,以升序排列数组的值。它几乎就在那里,但每当我输入“44 55 66 22 33 11 77 99 88 66”或它输出的任何数字 -858993460,11,22,33,44,55,66,66,77,88,或开头为负数 第一个数字到底怎么了?我是不是缺了什么? 我对C++很陌生,我不太明白这里的问题。如果有什么建议我可以用请告诉他们。 }