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

对tibble变量进行交叉表,使输出可读

在R语言中,tibble是一种数据结构,它提供了更现代、更灵活的数据框(data frame)替代品。要对tibble变量进行交叉表分析,并使输出更具可读性,可以使用tidyverse包中的count()函数结合spread()pivot_wider()函数来重塑数据,或者使用janitor包中的tabyl()函数来生成交叉表。

以下是使用tidyverse包进行交叉表分析的示例:

代码语言:txt
复制
# 安装和加载必要的包
install.packages("tidyverse")
library(tidyverse)

# 创建一个tibble示例数据
data <- tibble(
  gender = sample(c("Male", "Female"), 100, replace = TRUE),
  age_group = sample(c("Under 30", "30-50", "Over 50"), 100, replace = TRUE),
  purchase = sample(c("Yes", "No"), 100, replace = TRUE)
)

# 使用count()函数进行交叉表分析
cross_tab <- data %>%
  count(gender, age_group, purchase)

# 使用spread()函数重塑数据(适用于二分类变量)
cross_tab_spread <- cross_tab %>%
  spread(purchase, n)

# 或者使用pivot_wider()函数(在新版tidyverse中推荐使用)
cross_tab_wide <- cross_tab %>%
  pivot_wider(names_from = purchase, values_from = n)

# 打印结果
print(cross_tab_spread)
print(cross_tab_wide)

如果你想要更简洁的输出,可以使用janitor包中的tabyl()函数:

代码语言:txt
复制
# 安装和加载janitor包
install.packages("janitor")
library(janitor)

# 使用tabyl()函数生成交叉表
cross_tab_janitor <- data %>%
  tabyl(gender, age_group, purchase)

# 打印结果
print(cross_tab_janitor)

tabyl()函数会生成一个包含计数和百分比的交叉表,使输出更加直观。

参考链接:

  • tidyverse包: https://www.tidyverse.org/
  • janitor包: https://cran.r-project.org/web/packages/janitor/index.html

通过这些方法,你可以对tibble变量进行交叉表分析,并获得清晰、可读的输出。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MLQuant:基于XGBoost的金融时序交易策略(附代码)

换句话说,我们机器学习模型给出最大预测概率的资产进行投资,即给定资产明天将升值。...,我们可以简单地进行map()覆盖并应用rsample包中的rolling_origin()函数,这样,我们的每项资产都将有自己的rolling_origin()函数应用于它,而不会出现资产类的任何重叠或混合...之后,我们使用重命名chng变量并使用~str_c("X", seq_along(.))将时间序列特征变量重命名为更具动态性的变量,因此我们只需向functions字符串添加函数,而不必担心为了让模型起作用而单独重命名变量...——此时应执行适当的交叉验证,但是由于时间序列交叉验证非常棘手,R中没有函数可以帮助这种类型的交叉验证。我们将在后面的文章中给读者介绍其方法。 一旦模型被训练好,我们就开始做预测。...() return(preds) } 我们可以应用上述模型来创建时间序列特征,通过运行以下内容我们的每项资产进行训练和测试。

2.9K41
  • 「R」Shiny:案例研究:急诊室受伤情况分析

    这里我们有很多的数据,所以表格不是那么有用,因此我们可以绘图,使模式更加明显。..." [10] "12 YO F CONCUSSION HEAD-SLIPPED ON STAIRS" 一种产品进行了这种探索之后,如果我们可以轻松地其他产品进行处理而不必重新输入代码,那将是非常好的...在这里,我决定为输入控件设置一行(这是因为我可能要在此应用程序完成之前添加更多的输入),为所有三个分配一行(给每个 4 列,是 12 列宽度的 1/3)),然后为图行绘制分配一行: ui <- fluidPage...要解决此问题,我们首先需要弄清楚如何截断。我选择结合使用 forcats 函数来执行此操作:我将变量转换为因子,按级别的频率排序,然后将前 5 个级别之后的所有级别汇总在一起。...叙述 最后,我们想提供一种访问叙述 Narrative 的方法,因为它们是如此有趣,并且它们提供了一种非正式的方法来交叉检查在查看图形时提出的假设。

    4.3K30

    基于 mlr 包的 K 最近邻算法介绍与实践(上)

    即给定一个训练数据集,新输入的样本,在训练数据集中找到与该样本最邻近的 k 个实例, 这 k 个实例中的多数属于哪个类,则新输入的样本也属于哪个类。 2....在实际应用中,k 值一般选择一个较小的数值 (通常小于 20),实际中常采用 交叉验证 的方法来选择最优的 k 值。...在本例中,数据是 diabetesTib,我们想用变量 class 作为目标变量对数据进行分类。 定义 learner。learner 只是计划使用的算法的名称,以及该算法接受的任何其他参数。...3.3.1 定义任务 定义任务所需的部分有: 包含预测变量的数据 (我们希望这些变量包含进行预测/解决问题所需的信息)。 想要预测的目标变量 (target variable)。...由此可见,模型 98.62% 的实例都进行了正确的分类。 这是否意味着我们的模型将在新的、未见过的病人身上表现良好?事实上我们并不知道。

    2.1K21

    《高效R语言编程》6--高效数据木匠

    tibble会打印每个变量的类,data.frame不会 stringAsFactors默认不转换 输出时,只输出前10行 使用tidyr与正则表达式整理数据 整理数据包括数据清理和数据重构,前者是重定格式与标记脏数据...,stringi和stringr可以通过正则表达式更新脏字符串,assertive和assertr包可以在数据分析项目的一开始进行数据完整性的校验。...tidyr方便了收集与分割两个常见的操作 gather()收集是将列名换成新变量,将宽变成长,spread()是实现相反过程的函数。...使用broom::tidy()广泛应用于模型数据,并以标准数据框格式返回模型输出。使用变量名非标准化求值更高效,见R语言 dplyr传递参数_自由 平等~忠诚 奉献-CSDN博客[2]。...正则表达式 R与stringr分别使用grepl()和str_detect()来进行,我比较喜欢基础R的,不知你喜欢安装包还是用基本的。

    1.9K20

    R数据科学|第九章内容介绍

    nycflights13 中包含了与 flights 相关的 4 个 tibble: 数据 信息 airlines 可以根据航空公司的缩写码查到公司全名。...airports 给出了每个机场的信息,通过 faa 机场编码进行标识。 planes 给出了每架飞机的信息,通过 tailnum 进行标识。 weather 给出了纽约机场每小时的天气状况。...键 用于连接每对数据变量称为键。键是能唯一标识观测的变量(或变量集合)。 键的类型有两种。 主键:唯一标识其所在数据中的观测。...一种验证方 法是主键进行 count() 操作,然后查看是否有 n 大于 1 的记录: planes %>% count(tailnum) %>% filter(n > 1) #> # A tibble...anti_join(x,y):丢弃x中与y中的观测相匹配的所有观测。 ? 集合操作 集合操作都是作用于整行的,比较的是每个变量的值。集合操作需要x和y具有相同的变量,并将观测按照集合来处理。

    1.6K30

    西门子 PLC 程序故障排除工具

    2 西门子软件中提供的工具: 2.1 交叉引用: 交叉引用是一种在 PLC 程序中查找和追踪变量、数据块、网络和子程序之间关系的工具。...下面是其中一个程序的示例,您可以在其中看到交叉引用的外观和它包含的一些信息,如引用位置、读写访问、地址等。...当出现故障时,调用结构可以帮助我们定位错误发生的具体模块,从而更快速地进行故障排查。 下面是其中一个程序的示例,您可以在其中看到调用结构的外观和它包含的一些信息,如地址、和详细信息等。...3 总结: 通过使用西门子 PLC 软件提供的交叉引用、调用结构、从属结构和分配列表等工具,我们可以更高效地进行 PLC 程序故障排除。...交叉引用帮助我们快速定位和解决程序中的错误,调用结构和从属结构提高了程序的可读性和可维护性,分配列表确保变量和数据块的正确分配。

    21710

    数据清洗与管理之dplyr、tidyr

    本期回顾 R语言 | 第一部分:数据预处理 R语言|第2讲:生成数据 R语言常用的数据输入与输出方法 | 第三讲 本期目录 0 二维数组行列引用 1 创建新变量 2 变量重新编码 3 变量重新命名 4...接下来就以鸢尾花测试数据集进行进一步的数据管理和筛选操作。...> head(iris[,1],5) #引用第1列的数据,其中因数据过长,使用head()函数取前5个数字 [1] 5.1 4.9 4.7 4.6 5.0 如行值或列值为组合数据,则表示引用组合行列交叉位置的数据...类似excel透视反向操作 #gather(data, key, value, …, na.rm = FALSE, convert = FALSE) #data:需要被转换的宽形 #key:将原数据框中的所有列赋给一个新变量...类似excel透视操作 #spread(data, key, value, fill = NA, convert = FALSE, drop = TRUE) #data:为需要转换的长形 #key:

    1.8K40

    「R」dplyr 行式计算

    「原文来自:dplyr 文档」 上一篇:「R」dplyr 列式计算 通常 dplyr 和 R 更适合进行操作,而对行操作则显得更麻烦。...你可以在 rowwise() 中提供“标识符”变量,这些变量将在你调用 summarise() 的时候保留,因此它的行为类似于将变量传入 group_by(): df #> 2 6 #> 3 8 这与通常的 group_by() 输出有一点不同:我们明显地改变了数据的结构...我也曾抗拒 rowwwise(),因为我觉得自动在[到[[之间切换太神奇了,就像自动list()-ing结果使do()太神奇一样。...do() 我们 do()的必要性已经质疑了很长一段时间,因为它与其他 dplyr 动词并不太相似。它有两种主要的运作模式: 没有参数名:你可以调用函数来输入和输出数据框。引用“当前”组。

    6.2K20

    非线性回归nls探索分析河流阶段性流量数据和评级曲线、流量预测可视化

    然而,当站点未启用时,每日流量的估计需要额外的信息。统计信息传递和经验回归是两种相对简单的方法,可用于估算测量不当的流域中的流量。...如果主要输出是流量持续时间曲线,则主要关注的是候选量具有相似的径流因变量并且在未治理流域的合理距离内。但是,如果主要输出包括每日流量估计,则具有具有相同流量超出概率时间的候选量具更为重要。...使用简单线性或多元线性回归 Q通常在估计回归系数之前进行对数变换。如果预测变量和因变量之间的关系预期为非线性多项式,则可以包括项。...因此,每个单独的平滑函数变量均值的影响通常以图形方式传达。 方法 数据采集 数据来源于水位数据记录器。部署了一个额外的数据记录器,为部署在水下的数据记录器提供环境大气压力校正。...将使用它来报告参数和 GOF 指标 dfresu <- tibble(Site ) ## 开发评级曲线预测和 ## 使用 GOF 指标创建 df %>% dfres %>% NSE(predicted

    1.4K10

    生信爱好者周刊(第 2 期):生信的境界与道路

    scArches可推广到多模态参考映射,允许缺失的模态进行归因。最后,scArches保留了2019冠状病毒病(COVID-19)的疾病变异,当映射到健康参考时,可以发现特定疾病的细胞状态。...但那些研究只是为了支持专业医疗机构预先筛查的患者进行临床诊断,没有解决确定哪些儿童有出现遗传综合征的风险并应寻求专业治疗的关键需求,且其纳入的研究人群较为局限。...内容: 使用多个命令 创建脚本文件 显示消息 使用变量 输入输出重定向 管道 数学运算 退出脚本 5、Linux数据处理命令工具[9] step1 input.txt | less step1 input.txt...我想Elana J. Fertig研究组的论文Enter the Matrix: Factorization Uncovers Knowledge from Omics进行深入学习。...datar将R中相关的包在python中进行了实现,使得python中的数据分析也可以用上dplyr的语法。datar不仅实现了管道操作,并且尽量遵循原包的API设计,R熟悉的同学很容易上手。

    1.4K20
    领券