303 次浏览
假设我们有一个包含从 1 到 100 的一百个值的向量,我们希望将大于 5 小于 96 的值设置为 5,那么可以使用 ifelse 函数。例如,如果此向量命名为 x,则命令如下:ifelse(x>5 & x<96, 5, x)。示例 1 实时演示 > x <- c(1:100); x1 <- ifelse(x>5 & x<96, 5, x); x1 输出 [1] 2 4 1 6 7 4 0 1 6 4 0 7 1 3 3 1 4 6 7 7 0 2 7 3 9 4 4 8 6 3 3 5 4 5 6 5 6 [38] 2 ... 阅读更多
2K+ 次浏览
我们知道正值大于 0,因此,我们可以将此条件与 length 函数一起使用来查找向量中正值的个数。例如,如果我们有一个包含一些正值和一些负值的向量 x,并且我们想要查找正值的个数,那么我们可以使用命令 length(x[x>0])。示例 1 实时演示 > x <- rnorm(30); x1 <- length(x[x>0]); x1 输出 [1] 0.21314126 1.23449384 -1.02721325 -0.23168203 -1.36368881 -0.82416287 [7] 0.31224895 -0.90773340 0.10312288 -0.38914253 0.01196499 0.44875369 [13] 0.40820219 0.70172242 -0.23766272 -0.01023414 1.12403398 0.05837136 [19] -0.67403563 -0.26134292 0.31192384 -1.25116951 0.22115555 0.46544495 [25] 0.76567139 0.76948285 -1.42650924 0.24616899 0.18043015 1.04896235 ... 阅读更多
要检查 R 中向量中的所有值是否为整数,我们可以使用 floor 函数对向量进行舍入,然后从中减去向量值,并检查输出是否为零。如果输出为零,则表示该值为整数,否则不是。floor 函数返回小于或等于实际值的最大的整数。例如,如果我们有一个向量 x,则可以按 x-floor(x)==0 的方式完成。示例 1 实时演示 > x <- c(4, 0, 2, 8, 6, 1, 3, 7, 3, 4, 0, 7); x1 <- x - floor(x); x1 输出 [1] 4 0 2 8 6 1 3 7 3 4 0 7 ... 阅读更多
1K+ 次浏览
要将矩阵转换为具有列名和行名作为变量的数据框,我们首先需要将矩阵转换为表,然后使用 as.data.frame 读取它作为数据框。例如,如果我们有一个矩阵 M,则可以使用以下命令:as.data.frame(as.table(M))。示例 1 实时演示 > M <- matrix(1:36, nrow=6, byrow=TRUE); M1 <- as.data.frame(as.table(M)); M1 输出 [, 1] [, 2] [, 3] [, 4] [, 5] [, 6] [1, ] 1 7 13 19 25 31 [2, ] 2 8 14 20 26 32 [3, ] 3 9 15 21 27 33 [4, ] 4 10 16 22 28 34 ... 阅读更多
要创建一个具有固定行数但没有列的空数据框,我们可以使用 data.frame 函数以及 matrix 函数。这意味着我们需要使用 matrix 创建一个没有列的矩阵,并使用 data.frame 函数将其保存在数据框中,如下面的示例所示。示例 1 实时演示 > df1 <- data.frame(matrix(nrow=10, ncol=0)); df1 输出 0 列和 10 行的数据框 示例 2 实时演示 > df2 <- data.frame(matrix(nrow=100, ncol=0)); df2 输出 0 列和 100 行的数据框 示例 3 实时演示 > df3 <- data.frame(matrix(nrow=39, ncol=0)); df3 输出 0 列和 39 行的数据框 示例 4 实时演示 > df4 <- data.frame(matrix(nrow=20, ncol=0)); df4 输出 0 列和 20 行的数据框 示例 5 实时演示 > df5 <- data.frame(matrix(nrow=1, ncol=0)); df5 输出 … 阅读更多
给定一个整数作为输入。目标是找到为该数字计算的阶乘中尾随零的个数。数字 N 的阶乘是 [1, N] 范围内所有数字的乘积。我们知道,只有当数字是 10 的倍数或具有因子对 (2, 5) 时,我们才会得到尾随零。在任何大于 5 的数字的阶乘中,我们都有比该数字素因子分解中 5 的个数更多的 2 的个数。用 5 的幂除以一个数字将给我们 5 的个数…… 阅读更多
167 次浏览
给定两个数字 start 和 end 表示一个范围。目标是在 [start, end] 之间找到存在的一元数的个数。我们可以通过以下步骤检查数字是否为一元数:如果我们取一个数字 13,则 12 + 32 = 10,然后 12 + 02 = 1,那么最终的和就是这样,所以 13 是一元数。例如 输入 start=1 end=20 输出 范围内的一元数个数为:5 说明 数字为:1、7、10、12 和 13 输入 start=50 end=100 输出 范围内的一元数个数为:7 说明 数字为 - 59、63、67…… 阅读更多
135 次浏览
我们给定一个数字 N 作为输入。对 N 执行两个操作并识别在此过程中生成的唯一数字的个数。步骤如下 - 将数字加 1 从生成的数字中删除尾随零(如有)如果 N 为 8,则生成的数字将为 应用步骤 1 - 8 → 9 → 应用步骤 2 - 1 →(从 10 中删除 0)应用步骤 1:2 → 3 → 4 → 5 → 6 → 7 → 8(相同的序列)唯一数字的个数将为 9。例如 输入 N=21 输出 可以通过加 1…… 阅读更多
208 次浏览
给定一个包含整数值的排序双向链表。目标是找到乘积等于给定值 x 的三元组。如果输入链表为 3-4-1-2 且 x 为 6,则计数将为 1(三元组 (3, 1, 2))例如 输入 链表:[3-4-13-5-10-10-0] x=20 输出 乘积等于给定值 x 的排序双向链表中三元组的个数为:2 说明 三元组将为:(3, 4, 13) 和 (10, 10, 0) 输入 链表:[4-3-1-5-2-4-2] x=8 输出 乘积等于…… 阅读更多
172 次浏览
给定一个包含整数值的有序双向链表。目标是找到三个数的乘积等于给定值 x 的三元组。如果输入链表是 3−4−1−2 且 x 是 6,则计数将为 1(三元组 (3, 1, 2))。例如:输入链表:[200−4−16−5−10−10−2] x=200 输出在一个排序的双向链表中,乘积等于给定值 x 的三元组计数为:3 说明三元组将是:(4, 5, 10), (4, 5, 10) 和 (10, 10, 2) 输入链表:[4−3−1−5−2−4−2] x=12 输出在一个排序的双向链表中,乘积等于给定值… 阅读更多