首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在data.table中,如何使用j中的ifelse()进行子集,并使用.N作为子集之后的观察值数量?

在data.table中,可以使用j中的ifelse()函数进行子集操作,并使用.N来获取子集之后的观察值数量。

ifelse()函数是一个条件语句,它接受三个参数:条件、满足条件时的返回值和不满足条件时的返回值。在data.table中,我们可以将ifelse()函数应用于j中,以根据条件创建子集。

下面是一个示例代码:

代码语言:txt
复制
library(data.table)

# 创建一个示例数据表
dt <- data.table(x = c(1, 2, 3, 4, 5),
                 y = c("a", "b", "c", "d", "e"))

# 使用ifelse()函数创建子集,并使用.N获取子集之后的观察值数量
subset <- dt[, .(x, y)][, .N, by = .(z = ifelse(x > 3, "大于3", "小于等于3"))]

# 输出子集
print(subset)

在上面的代码中,我们首先创建了一个示例数据表dt,包含两列x和y。然后,我们使用ifelse()函数在j中创建了一个子集。根据x的值是否大于3,我们将z设置为"大于3"或"小于等于3"。最后,我们使用.N获取了子集之后的观察值数量,并将结果存储在变量subset中。

输出结果如下:

代码语言:txt
复制
       z N
1: 小于等于3 3
2:   大于3 2

在这个例子中,我们根据x的值将数据分为两个子集,一个是小于等于3的观察值,另一个是大于3的观察值。然后,我们使用.N获取了每个子集的观察值数量。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法给出具体的推荐。但是,腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以根据具体需求进行选择和使用。

相关搜索:使用dplyr更新R中的值以对行进行子集在具有自定义函数的data.table中的子集上使用mapply如何使用dplyr select根据单行数据框中列中的值对列进行子集如何使用R将坐标存储在矩阵中的SpatialPointsDataframe子集?在R中,使用非NA值的最长连续延伸的子集数据如何在Python中加速for循环,使用给定值在列中设置DataFrame子集并应用公式如何使用R中的循环在多个条件下设置矩阵的子集?如何使用R根据数据帧中单个列的最小值子集特定列中的行如何使用esttab创建具有N个观察值的列的均值表中的差异?在dplyr::anti_join()过程中,必须使用有效的下标向量对元素进行子集如何使用dplyr或base R计算链函数中T/F观察值的数量?如何获得子查询中的结果值,并使用MySQL进行比较?如何使用LEFT函数将单元格区域的子集复制并粘贴到另一列中?在固定大小的哈希表中,使用单独的链接并使用已知的N个条目进行初始化时,最优的存储桶数量是多少?如何使用存储在变量中的值进行原始查询在使用combineLatest时,如何从链接的rxjs观察值中捕获错误?如何使用R拆分数据集,使一列中的值之和在子集之间大致相同?在使用max之后,我如何知道在python中哪个变量的值最大?如何获取多个复选框的值并使用复选框中的值进行递增如何在整洁的世界中折叠行,或者在广泛传播数据long ->之后使用data.table
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

「R」数据操作(三):高效的data.table

N是最常用的符号之一,它表示当前分组中,对象的数目(就不用调用nrow函数啦)。在[]使用它指提取最后一行。...对数据进行分组汇总 by是data.table中另一个重要参数(即方括号内的第3个参数),它可以将数据按照by值进行分组,并对分组计算第2个参数。...data.table中,by所对应的组合中的值是唯一的,虽然实现了目标,但结果中没有设置键: key(type_class_test0) #> NULL 这种情况下,我们可以使用keyby来确保结果的data.table...然后在每个子集data.table的语义中计算j表达式。...2.48 该数据集包含超过5万条钻石信息的记录,每条记录了钻石的10个属性,现在我们队cut列中的每种切割类型都你拟合一个线性回归模型,由此观察每种切割类型中carat与depth是如何反映log(price

6.4K20

R语言数据分析利器data.table包 —— 数据框结构处理精讲

那么就会默认使用FALSE; qmethod,怎样处理双引号,"escape",类似于C风格,用反斜杠逃避双引,“double",默认,双引号成对; logicalAsInt,逻辑值作为数字写出还是作为...(x, v)] #取DT的x,v列上x="b",v=3的行 j 对数据框进行求值输出   j 参数对数据进行运算,比如sum,max,min,tail等基本函数,输出基本函数的计算结果,还可以用n输出第...n列,.N(总列数,直接在j输入.N取最后一列),:=(直接在data.table上添加列,没有copy过程,所以快,有需要的话注意备份),.SD输出子集,.SD[n]输出子集的第n列,DT[,...., by=x][order(x)] #和上面一样,采取data.table的链接符合表达式 DT[v>1, sum(y), by=v] #对v列进行分组后,取各组中v>1的行出来,各组分别对定义的行中的...x到之间的列作为子集,然后.SD 输出所有子集 DT[2:5, cat(y, "\n")] #直接在j 用cat函数,输出2到5列的y值 DT[, plot(a,b), by=x] #直接在j用plot

5.9K20
  • 5个例子比较Python Pandas 和R data.table

    我将使用谷歌Colab(Pandas )和RStudio(data.table)作为开环境。让我们首先导入库并读取数据集。...另一方面,data.table仅使用列名就足够了。 示例3 在数据分析中使用的一个非常常见的函数是groupby函数。它允许基于一些数值度量比较分类变量中的不同值。...我们求出了房屋的平均价格,但不知道每个地区的房屋数量。 这两个库都允许在一个操作中应用多个聚合。我们还可以按升序或降序对结果进行排序。...我们使用计数函数来获得每组房屋的数量。”。N”可作为data.table中的count函数。 默认情况下,这两个库都按升序对结果排序。排序规则在pandas中的ascending参数控制。...data.table中使用减号获得降序结果。 示例5 在最后一个示例中,我们将看到如何更改列名。例如,我们可以更改类型和距离列的名称。

    3.1K30

    R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    可以看到,计算结果中的第一列实际上是“SELLERID.CLIENT”,我们需要把它拆分成两列并调换顺序才行。...(iris$setosa)] #按照照setosa的大小,重排Sepal.Length数据列 四、dplyr与data.table data.table可是比dplyr以及python中的...data.table包的语法简洁,并且只需一行代码就可以完成很多事情。进一步地,data.table在某些情况下执行效率更高。...在使用data.table时候,需要预先布置一下环境: datadata.table(data) 如果不布置环境,很多内容用不了。...data.table包提供了一个非常简洁的通用格式:DT[i,j,by],可以理解为:对于数据集DT,选取子集行i,通过by分组计算j。

    20.9K32

    「r」dplyr 里的 join 与 base 里的 merge 存在差异

    今天在使用连接操作时发现:虽然都是合并操作函数,dplyr 包里的 *_join() 和基础包里面的 merge() 存在差异,不同的数据结构,结果也会存在偏差。...相同的数据,不同的操作函数存在差异 在进行连接操作时,我们会发现 dplyr 的结果会报错!...本质上是 data.table 体格的泛型函数不支持类似基础包中的操作。 如何编写代码支持对上述数据集的连接操作?...如果 be_join 不为空,进行如下的循环: 如果存在,则将这个子集和 to_join 按共同列合并 如果不存在,使用循环位移一位,将当前 be_join 的第 2 个子集移动为 第 1 个。...merge() 函数在进行连接操作时会输出有问题的结果,所以建议使用的小伙伴仔细检查结果。

    1.6K30

    搞懂机器学习模型的运行逻辑,从理解 Shapley 值开始

    在这种情况中,Shapley 值用于计算每个单独的特征对模型输出的贡献。 如何计算 Shapley 值?大多数时候,你倾向于在文献中看到这个等式: ? 让我们把它分解一下。...在一个联盟游戏(前面描述的场景)中,我们有一组 N 个玩家。我们还有一个函数 v,它给出了这些参与者的任何子集的值,也就是说,S 是 N 的子集,然后 v(S)给出了该子集的值。...我们还需要观察 AB 产生的砖块数量,并将其与 AB 产生的砖块数量以及所有 8 个集合中 D 可以产生的砖块数量进行比较。 好吧,我们现在已经知道我们需要计算 8 个不同的边缘值。...然后我们用这个数字除以玩家 i 对所有大小为| S |的群体的边际贡献。 在我们的场景中,| N |-1=3,也就是说,当我们计算 D 的 Shapley 值时,这些是剩下的团队成员数量。...在我们为团队的其他成员完成这项工作之后,我们将知道每个人对每周生产的 X 块砖的贡献,这样我们就可以在所有团队成员中公平地分配奖金。 ?

    1.7K50

    R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

    data.table包提供了一个非常简洁的通用格式:DT[i,j,by],可以理解为:对于数据集DT,选取子集行i,通过by分组计算j。...注意: data.table之后,一些常规的data.frame的操作就失效了,譬如: data[,-1]、data[,1]这样的操作就不是这么用的了。...SD只能在位置j中使用。 .SDcols常于.SD用在一起,他可以指定.SD中所包含的列,也就是对.SD取子集。...—————————————————————— 实战一:在data.table如何选中列,如何循环提取、操作data.table中的列?...(x)] 还有 data$x 如果有很多名字很长的指标,data.table中如果按列进行遍历呢? data[,1]是不行的,选中列的方式是用列名。

    9.3K43

    临床研究新风向,巧用LASSO回归构建属于你的心仪模型

    )分配好了之后呢,下一步就是把采集到的信息(也就是数据列)进行分配,在我们的这个测试数据中前面V1-V9是采集到的样本信息,最后一列是我们的诊断,也就是肿瘤的良恶性,下面我们把样本信息和样本诊断分割开来...所谓K-fold交叉验证,就是将数据分成k个相同的子集(折叠子集),每次用k-1个子集拟合模型,然后将剩余的子集作为测试集,最后将k个结果合并(一般采用平均值)来确定最终的参数。...在此方法中,每个子集仅用作测试集一次。在glmnet包中使用K-折交叉验证非常容易。结果包括每个相应的MSE值和相应的λ。...然后我们来看一下,随着lambda值的变化,每个观察值对应的系数的变化趋势。...此图显示,随着λ的减少,压缩参数减少,系数的绝对值增加(图44)。这个模型应该如何在文章中描述呢?

    4K43

    球盒模型:一切回溯穷举,皆从此法出

    请你把进度条拖到最后让整棵回溯树显示出来,然后把鼠标在每一层节点上横向移动,观察递归树节点和树枝上的值: 这个可视化面板的网页地址,你可以自己去试试: https://labuladong.online...我在 回溯算法核心框架 和 回溯算法秒杀排列/组合/子集的九种变体 中都写了上面这段代码,很多读者看了之后就跑来跟我说啊,他看的那个全排列算法是通过swap操作来计算的,不需要used数组的额外空间,比我讲解的回溯算法框架效率高...我先用 算法可视化面板 把递归树画出来,请你把进度条拖到最后让整棵回溯树显示出来,然后把鼠标在每一层节点上横向移动,观察递归树节点和树枝上的值,验证一下是不是元素在选索引: 这个可视化面板的网页地址,你可以自己去试试...,然后把鼠标在每一层节点上横向移动,观察递归树节点和树枝上的值,你可以很直观地看明白,是桶的位置在选择球: 这个可视化面板的网页地址,你可以自己去试试: https://labuladong.online...这也解释了,为什么所有子集(幂集)的数量是2^n,因为每个元素都有两种选择,要么在子集中,要么不在子集中,所以其递归树就是一棵满二叉树,一共有2^n个叶子节点。

    16410

    特征选择

    i水平的期望频数Ei等于总频数n×i水平的期望概率pi,k为单元格数(行数*列数)。 如何判定两个定性变量的卡方值在什么区间可以证明假设成不成立呢?...(标签)集进行训练学习,训练的精度(准确率)作为衡量特征子集好坏的标准, 经过比较选出最好的特征子集。...值较大的特征作为最终的特征 ,N表示含有特征A的所有特征子集的次数,比如本例子含有A的特征子集有4次 根据频率指标,挑选出前k个F频率值较大的特征作为最终的特征 含有特征的特征子集被选为重要特征的次数含有特征的特征子集的数量...基于这么个原理,我们可以提出: (1)特征在进行排序或者打乱之后,会很明显影响模型性能的特征,划定为重要特征。 (2)特征在进行排序或者打乱之后,对模型性能几乎没有影响,划定为不重要特征。...B 样本数量(N=100)扩增到占比多的类别 A 样本数量(M=900)一致,然后进行训练。

    1.3K32

    AAAI 2020 | 南京大学提出高效演化算法 EAMC:可更好解决子集选择问题

    该问题的目标是从 n 个元素中,选择满足约束 c 的一个子集,使得目标函数 f 的值最大: ? 其中 f 和 c 都是单调的,但并不一定满足子模性。...第三个应用是传感器放置,其目标是决定有限数量的传感器的放置位置,使得不确定度能最大限度地降低。令 o_j 表示一个随机变量,其代表通过在位置 v_j 安装传感器而收集到的观察数据。...更小的 cˆ 值和更大的 f 值都会导致 g 的值更大。 在优化过程中,EAMC 会保留一个种群 P,然后新生成的解 x' 只会与 bin(|x'|) 中解进行比较。...在每轮迭代中,可通过选择 0^n 并翻转特定的 0 位来生成 y(以至少 1/enP_max 的概率发生)。因此,在至多 enP_max 个预期迭代轮数中可以生成 y。...要使 J_max ≥ 1,预期的迭代数量最大为 enP_max;为了将 J_max 从 1 增大到 n,预期的迭代数量至多为 (n-1) · enP_max;为了生成 y,预期的迭代数量至多为 enP_max

    1.2K10

    动归背包2

    一和零 力扣题目链接 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。...其他满足题意但较小的子集包括 {“0001”,”1”} 和 {“10”,”1”,”0”} 。{“111001”} 不满足题意,因为它含 4 个 1 ,大于 n 的值 3 。...但是对于这道题,我还是很难相处如何抽象成为我们能够接触的算法 跟随代码随想录的脚步 ,我才清楚的知道如何 解决这类题,如何抽象题目的信息作为我们解题的关键 思路 从题目中【请你找出并返回 strs 的最大子集的大小...所容纳物品的最大价值为dp[j] 同理到这道题,我们定义dp数组的含义就可以这样定义 //容量为i个0和 j个1组成的背包 所能容纳的物品的最大数量(子集个数)为dp[i][j] dp[i][j] =...那么dp数组的含义我们就可以确定下来了 dp[j] : 装满容量为 j 的背包 ,总共有dp[j] 种方法 实现 根据我们的思路 就可以按照动归五部曲来进行实现 含义: dp[j] : 装满容量为

    9110

    统计满足条件的子集个数

    现在的任务是统计满足上述条件的不同子集subset的个数,并对结果取模。 解决方法 为了解决这个问题,我们使用了回溯法来生成数组的所有子集,然后根据条件进行判断和统计。...在回溯的过程中,我们通过递归调用backtrack()方法,依次选择数组中的元素,并将路径添加到结果列表subsets中。然后,进一步对当前位置之后的元素进行选择或不选择,直到遍历完整个数组。...然后迭代处理每组数据,读取数组长度N和数组元素nums,并调用count()函数统计满足条件的子集个数,并将结果存入数组res中。最后,输出每组数据的结果。...现在的任务是统计满足上述条件的不同子集subset的个数,并对结果取模。 解决方法 为了解决这个问题,我们使用了回溯法来生成数组的所有子集,然后根据条件进行判断和统计。...在回溯的过程中,我们通过递归调用backtrack()方法,依次选择数组中的元素,并将路径添加到结果列表subsets中。然后,进一步对当前位置之后的元素进行选择或不选择,直到遍历完整个数组。

    4200

    浅谈关于特征选择算法与Relief的实现

    一、 背景 1) 问题 在机器学习的实际应用中,特征数量可能较多,其中可能存在不相关的特征,特征之间也可能存在相关性,容易导致如下的后果: 1.    ...定向搜索(Beam Search ) 算法描述:首先选择N个得分最高的特征作为特征子集,将其加入一个限制最大长度的优先队列,每次从队列中取出得分最高的子集,然后穷举向该子集加入1个特征后产生的所有特征集...卡方检验 卡方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否.具体做的时候常常先假设两个变量确实是独立的(“原假设”),然后观察实际值(观察值)与理论值(这个理论值是指“如果两者确实独立...这个式子就是开方检验使用的差值衡量公式.当提供了数个样本的观察值x1,x2,……xi,……xn之后,代入到式中就可以求得开方值,用这个值与事先设定的阈值比较,如果大于阈值(即偏差很大),就认为原假设不成立...根据第三章提到的ReliefF算法过程,先编写ReliefF函数程序,用来计算特征属性,再编写主程序,在主程序中调用该函数进行计算,并对结果进行分析,绘图,得到有用的结论。 程序统一在最后贴出。

    7.6K61

    【动态规划背包问题】多维背包问题

    前言 今天是我们讲解「动态规划专题」中的「背包问题」的第十四篇。 今天将学习「多维背包」,并完成一道相关练习题。 另外,我在文章结尾处列举了我所整理的关于背包问题的相关题目。...请你找出并返回 的最大子集的大小,该子集中 最多 有 个 和 个 。 如果 的所有元素也是 的元素,集合 是集合 的子集 。...其他满足题意但较小的子集包括 {"0001","1"} 和 {"10","1","0"} 。{"111001"} 不满足题意,因为它含 4 个 1 ,大于 n 的值 3 。...有了「状态定义」之后,「转移方程」也很好推导: 其中 数组记录的是字符串中出现的 数量。...在明确了「成本」和「价值」之后,根据每件物品可选“一件”还是“多件”套用对应的「01 背包」或「完全背包」状态定义进行微调即可。

    1.3K30

    R练习50题 - 第一期

    写在前面 从这期开始,大猫课堂将会推出一个新的系列:R练习50题,目的是使用50道练习题让大家掌握常用的数据操作,例如寻找每组最大的N个观测等。...unique:找出symbol中不重复的值。 在data.table的语法中,先进行列选择操作,再对列进行处理。所以上述语句会先执行str_detect,再执行unique。...(date, updown)这个结构,他的意思是,把整个数据集按照date和updown两个变量进行分组,并依次排序。...其中,updown是我们新建的字符变量,用来表示分组,它只取两个值:UP, DOWN。这其中的难点是建立updown这个变量。我们使用了ifelse这个函数。...由于在keyby语句中我们已经按照日期与涨跌进行了分组,所以这一步我们只需要统计每个组有多少个股票就可以了。我们在这里使用了uniqueN这个函数。

    2.5K40
    领券