gpt4 book ai didi

r - 在 j 中使用大括号 {...}

转载 作者:行者123 更新时间:2023-12-03 21:32:57 25 4
gpt4 key购买 nike

我一直在学习名为“R 中的数据分析,data.table 方式”的数据营类(class)。
练习说明如下,

  • 不使用==选择b组.
  • 选择 b 和 c 组。
  • 使用 mult 选择 b 和 c 组的第一行。
  • 使用 by=.EACHI.SD选择 b 和 c 的第一行和最后一行
    组。
  • 扩展之前的命令以在返回之前打印出组
    它的第一行和最后一行。

  • 布局如下,
    # This is your data.table `DT`. The keys are set to `A` and `B`
    DT <- data.table(A = letters[c(2,1,2,3,1,2,3)], B = c(5,4,1,9,8,8,6), C = 6:12)
    setkey(DT, A, B)
    # Select the `b` group
    # `b` and `c` groups
    # The first row of the `b` and `c` group
    # `by=.EACHI` and `.SD`
    # Print out all the data in the two groups before you return
    # the first and last row of each group again. Use {} and .N
    我确实了解前 4 条指令是如何完成的,但是当我继续执行最后一条指令时,我被卡住了。我不明白怎么 {}可以使用,最终我发现解决方案是:
    DT[c("b", "c"), {print(.SD); .SD[c(1, .N)]}, by = .EACHI]
    我不明白 j 中的语法如何有效,有人可以向我解释一下吗?谢谢。

    最佳答案

    正如您从阅读中了解到的 help("data.table") , j期待

    A single column name, single expresson of column names, list() of expressions of column names, an expression or function call that evaluates to list (including data.frame and data.table which are lists, too), or (when with=FALSE) a vector of names or positions to select.



    您还应该阅读 help("{") . {可以组合表达式。它返回最后计算的表达式。因此,就 data.table 而言,它只得到最后一个表达式,即 .SD[c(1, .N)] ,并且它知道如何处理(例如,组合每个组的结果)。 data.table 不需要知道如何处理 print(.SD) ,但是在 data.table 的框架内进行评估。

    关于r - 在 j 中使用大括号 {...},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32243145/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com