找到 2038 篇文章 适用于 R 编程
608 次浏览
假设我们创建了一个可以同时获取两个不同值的函数,那么我们可以使用 mapply 将该函数应用于 R 数据框的两列。例如,如果我们有一个手动创建的函数,例如 func,它可以将两个值相乘,那么我们可以使用以下命令将其应用于名为 df 的数据框,该数据框有两列 x 和 y:mapply(func, df$x, df$y) 手动创建的函数名为 func:func mapply(func, df1$x1, df1$x2)输出[1] 24 35 18 5 56 25 4 48 16 28 30 7 24 30 30 25 12 ... 阅读更多
745 次浏览
要使用 ggplot2 通过均值更改箱线图的顺序,我们可以在 ggplot 的 aes 中使用 reorder 函数。例如,如果我们有一个名为 df 的数据框,其中包含两列,例如 x(分类)和 y(计数),则可以通过使用命令 ggplot(df, aes(x=reorder(x, y, mean), y))+geom_boxplot() 创建按均值排序的箱线图示例考虑以下数据框:实时演示> x y df df输出 x y 1 A 22 2 A 17 3 A 20 4 A 36 5 A 34 6 A 25 7 A 25 8 A 30 9 A 23 10 A 29 11 B ... 阅读更多
3K+ 次浏览
可以通过使用 apply 函数将矩阵列转换为列表。我们将不得不使用 as.list 函数将矩阵的列读取为列表。例如,如果我们有一个名为 M 的矩阵,则可以使用命令 apply(M, 2, as.list) 将 M 中的列转换为列表。示例 1实时演示> M1 M1输出 [, 1] [, 2] [1, ] -1.3256074 -0.07328026 [2, ] 1.1997584 -1.06542989 [3, ] -0.2214659 -1.75903298 [4, ] 1.4446361 -0.12859397 [5, ] -0.1504967 0.97264445将 M1 列转换为列表:> apply(M1, 2, as.list)输出[[1]] ... 阅读更多
199 次浏览
假设我们有一个矩阵和一个包含与矩阵大小相同的索引的向量,那么我们可以使用索引向量从矩阵中提取向量。为此,我们可以使用 cbind 函数,如下面的示例所示。示例 1实时演示> M1 M1输出 [,1] [,2] [1,] 4 0 [2,] 1 1 [3,] 1 2 [4,] 2 0 [5,] 3 2 [6,] 2 2 [7,] 1 6 [8,] 1 2 [9,] 3 1 [10,] 1 2 [11,] 2 3 [12,] 2 0 [13,] 3 0 [14,] 0 1 [15,] 2 4 [16,] 1 1 [17,] 3 1 [18,] 0 2 [19,] 2 1 [20,] 2 0示例> Index_M1 Index_M1输出[1] 2 1 2 1 2 2 1 1 2 1 1 2 1 1 1 1 2 2 1 1示例> M1[cbind(seq_along(Index_M1),Index_M1)]输出[1] 0 1 2 2 2 2 1 1 1 1 2 0 3 0 2 1 1 2 2 2示例 2实时演示> M2 M2输出 [,1] [,2] [,3] [,4] [1,] 10 9 9 11 [2,] 13 6 16 8 [3,] 11 11 8 10 [4,] 15 11 9 9 [5,] 10 8 9 9 [6,] 7 14 9 15 [7,] 8 6 8 7 [8,] 4 8 9 12 [9,] 7 12 11 10 [10,] 8 8 9 13 [11,] 9 13 11 6 [12,] 12 5 11 8 [13,] 8 6 15 8 [14,] 6 17 12 7 [15,] 8 10 9 8 [16,] 13 7 11 13 [17,] 5 10 7 7 [18,] 10 11 8 8 [19,] 5 9 9 13 [20,] 5 10 7 6示例> Index_M2 Index_M2输出[1] 3 4 3 3 3 1 3 4 4 3 1 4 3 4 4 1 2 1 1 2示例> M2[cbind(seq_along(Index_M2),Index_M2)]输出[1] 9 8 8 9 9 7 8 12 10 9 9 8 15 7 8 13 10 10 5 10
1K+ 次浏览
要按行名聚合矩阵列,我们可以使用 colSums 与 sapply 并转置输出。例如,如果我们有一个名为 M 的矩阵,则可以使用 t(sapply(by(M, rownames(M), colSums), identity)) 来按行名聚合矩阵列。示例 1考虑以下矩阵:实时演示> M1 rownames(M1) M1输出 [, 1] [, 2] B 4 6 D 2 1 B 1 5 C 0 0 A 2 3 B 1 0 B 5 3 D 1 3 C 0 1 C ... 阅读更多
2K+ 次浏览
要查找 R 数据框中数值的位置,我们使用 which 函数,如果该值为字符串,则将使用相同的函数,但我们需要适当地传递该值。例如,如果我们有一个名为 df 的数据框,其中包含一个值,例如 tutor,则可以使用命令 which(df=="tutor", arr.ind=TRUE) 查找 tutor 的位置。示例 1考虑以下数据框:实时演示> x1 x2 x3 df1 df1输出 x1 x2 x3 1 2018 2020 2018 2 2020 2020 2015 3 2018 2020 2015 4 2018 2015 ... 阅读更多
2K+ 次浏览
要查找包含数值和非数值列的数据框的相关性,我们可以使用 cor 函数与 sapply 并使用 complete.obs 作为皮尔逊方法。例如,如果我们有一个名为的数据框,则可以使用以下命令查找相关系数:cor(df[, sapply(df, is.numeric)], use="complete.obs", method="pearson")示例 1考虑以下数据框:实时演示> x1 x2 x3 df1 df1输出 x1 x2 x3 1 C 11 2 2 A 3 1 3 C 4 0 4 D 10 2 5 A 1 0 6 A 4 1 7 D 4 0 ... 阅读更多
205 次浏览
二元矩阵包含以二元形式表示的值,例如 0/1、1/2、是/否等。如果我们有一个包含某些值的矩阵,并且我们期望整个矩阵中只有两个值,那么我们可以检查矩阵中是否存在这两个值。例如,如果我们有一个名为 M 的矩阵,那么我们可以使用命令 all(M %in% 0:1) 检查它是否只包含 0/1。示例1在线演示> M1 M1输出 [, 1] [, 2] [, 3] [, 4] [1, ] 0 0 ... 阅读更多
88 次查看
如果一个矩阵有多列,并且每一行的值都不同,那么最大值的个数将等于列的个数。假设我们想提取名为 M 的矩阵中每一行中两个最大值的索引,那么我们可以使用以下命令:t(apply(M, 1, order, decreasing=TRUE)[1:2, ]) 示例1在线演示> M1 M1输出 [, 1] [, 2] [, 3] [, 4] [1, ] 7 4 4 10 [2, ] 7 1 4 3 [3, ] 9 6 6 4 [4, ... 阅读更多