小编sne*_*ter的帖子

如何使用 [r] data.table(如果可能)执行多个与前一行相关的逐行操作

我有以下数据表:

dt <- fread("
  ID   | EO_1 | EO_2 | EO_3 | GROUP
ID_001 | 0.5  |  1.2 |      |   A  
ID_002 |      |      |      |   A
ID_003 |      |      |      |   A
ID_004 |      |      |      |   A
ID_001 | 0.4  |  2.5 |      |   B
ID_002 |      |      |      |   B
ID_003 |      |      |      |   B
ID_004 |      |      |      |   B  
            ", 
            sep = "|",
            colClasses = c("character", "numeric", "numeric", "numeric", "character"))
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行一些逐行操作,这些操作有时取决于前一行的数据。进一步来说:

calc_EO_1 <- function( …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

删除每个列,但在data.table中删除其中一些列

我不知道它是否已被问过,因为它似乎应该是一个常见的问题,但即使我尝试过,我仍然无法找到任何关于它的信息.对不起,那个案子.

鉴于dt <- data.table(col1 = c(1, 2, 3, 4), col2 = c("a", "b", "c", "d"), col3 = c(T, F, T, F)):

  • 您可以使用选择多个列 dt[, c("col1", "col2")]
  • 您可以使用选择除col1和col 2之外的每一列 dt[, -c("col1", "col2")]
  • 您可以使用删除列 dt[, "col1" := NULL]
  • 您可以使用删除多个列 dt[, c("col1", "col2") := NULL]
  • 您无法删除除col1之外的所有列 dt[, -"col1" := NULL]
  • 除了col1和col2之外,你都不能删除每一列 dt[, -c("col1", "col2") := NULL]

我很确定它必须以任何方式实现最后两个,但对我而言,目前还不可能.你能给我一些建议吗?我不是编程的新手,我知道一点R(不过我最强的),但我对data.table相当新.

感谢大家.

编辑:这个问题在以下链接中有一个答案,虽然主题没有解决这个问题所以如果你正在寻找这个特殊的疑问很难找到:

如何根据DF2中的重要变量对DF1中的列变量进行子集化?

r data.table

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

Chain withColumn 用于在 PySpark 上多次更改一列

我使用的是 UCI 的成人年收入。

我有一个数据框,其中一列中有一个分类变量,我想将其分组为不同的类别(一些常见的特征工程)。

df.groupBy('education').count().show()
Run Code Online (Sandbox Code Playgroud)

给出:

+------------+-----+
|   education|count|
+------------+-----+
|        10th| 1223|
|     Masters| 2514|
|     5th-6th|  449|
|  Assoc-acdm| 1507|
|   Assoc-voc| 1959|
|     7th-8th|  823|
|         9th|  676|
|     HS-grad|14783|
|   Bachelors| 7570|
|        11th| 1619|
|     1st-4th|  222|
|   Preschool|   72|
|        12th|  577|
|   Doctorate|  544|
|Some-college| 9899|
| Prof-school|  785|
+------------+-----+
Run Code Online (Sandbox Code Playgroud)

我想将以下类别放入特定组中,这样:

dropout = ['Preschool', '1st-4th', '5th-6th', '7th-8th', '9th', '10th', '11th', '12th']
community_college = ['Assoc-acdm', 'Assoc-voc', 'Some-college']
masters = ['Prof-school']
Run Code Online (Sandbox Code Playgroud)

为此,我可以执行以下操作:

from pyspark.sql.functions import …
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql pyspark

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

标签 统计

data.table ×2

r ×2

apache-spark-sql ×1

pyspark ×1