data.table,我们可以根据行号或条件选择行:
> x <- data.table(letters[1:4], 1:4)
> x
V1 V2
1: a 1
2: b 2
3: c 3
4: d 4
> x[2]
V1 V2
1: b 2
> x[V1 == "d"]
V1 V2
1: d 4
但是,我不能同时选择行数和条件:
> x[!2 & V2 > 1]
Empty data.table (0 rows) of 2 cols: V1,V2
这可能是因为!2
在这种格式下没有被解释为行号。我知道我可以链接这两个条件:
> x[!2][V2 > 1]
V1 V2
1: c 3
2: d 4
但是我想为这个子集分配新的列值
x[!2][V2 > 1, V3 := "more"]
现在,它只为中间链接的 data.table 创建了列。我可以保存中间表,然后合并回原始表,但那会很麻烦。
实际上,我经常觉得 data.table
需要一个正确的行号。。我是
一个依赖于组的动态数字,但我想要一个可以识别每一行的唯一ID,这个唯一的id在合并/连接中非常有用(通常数据没有唯一的ID)。如果 .i
是行号,我可以使用
x[(.i != 2) & (V2 >1), V3 := "more"]
我可以通过首先显式创建行号列来模拟这一点。
另一种方法是对子集data.table进行修改,然后应用回原始表。假设我们有x作为原始表,x[!2]作为子集,那么如果在< code>x[!2]实际修改x,我的问题也就解决了。当然,这种子集需要以不同方式创建,例如< code>x[!2,refOriginal = TRUE]。
以下是我对解决方案的两次尝试:第一次使用data.table
的汇总语法来计算使用行号的逻辑向量。I
和位置 i
处的条件用于子集化和更新列;第二个使用哪个
和 setdiff
从条件中删除某些行号,另一方面,如果您需要行号和
条件的和操作,setdiff
可以用并集
替换:
x[x[, .I != 2 & V2 > 2], V3 := "more"]
x
# V1 V2 V3
# 1: a 1 NA
# 2: b 2 NA
# 3: c 3 more
# 4: d 4 more
x[setdiff(which(V2 > 2), c(2)), V3 := "more"]
x
# V1 V2 V3
# 1: a 1 NA
# 2: b 2 NA
# 3: c 3 more
# 4: d 4 more
我有一个在data.table中选择行的特定问题,到目前为止还没有设法解决它。我有一个数据集,用于存储一系列参数的仿真结果。数据集中的列包含参数或结果值,请参阅下面的代码(“p”表示参数列,“v”表示值列。 我现在想提取:对于每个p1,对于给定的p2和p3值,对于p4,p5的任意值,v1的值是最小的行。设 np4 和 np5 是 p4 和 p5 的唯一值的数量,对于每个唯一的 p1 并给定 p2,
我已经实现了。
输入的dput() 结构(列表(Varname=structure(1:6,.标签=c(“A”,“B”,“c”,“D”,“E”,“F”),类=“因子”),成分=结构(c(3L,1L,1L,4L,2L,1L),标签=c(“”,“A,c”,“B”,“c”),类=“因子”),名字=结构(c(5L,3L,2L,4L,6L),标签=c(“”,“鲍勃”,“凯茜”,“迪克,南希”,“杰克,布鲁斯”,“曼迪”),
假设我有一个7列的数据帧,有些行有7个值,有些行的NAs超过了某个点。我想抓住最后一个值(从左到右),不是NA,然后直接向左的值。它是分层数据,但有些组比其他组更深。我想要最深和第二深的组在一个新的数据帧的两列。 这段代码可以工作,但对于46K观测值的数据帧,我的内存已达到最大。有没有比这更有效的方法? 第一次发帖。通常我可以拼凑我需要从这个网站。提前感谢。
本文向大家介绍从基于特定月份的MySQL表中选择数据?,包括了从基于特定月份的MySQL表中选择数据?的使用技巧和注意事项,需要的朋友参考一下 使用MySQL中的方法选择基于月份的日期。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 输出结果 这将产生以下输出- 以下是根据特定月份从表中选择数据的查询- 输出结果 这将产生以下输出-
问题内容: 我有一张叫的桌子。在该表中,我有以下栏目:,,, 我有另一个表,唯一重要的列是,我想将其与表行进行比较。 该表如下所示: 假设我有一个表(user_meta)像这样: 我想为每个检索单个行,但前提是公司ID和user_type正确。 我想检索在查询中发送的具有相同companyID的所有用户,因此,假设$ companyID = 2,然后所有具有=’staff’的用户。 因此,user