R-应用流行病学和公共卫生-5.导入

2023-11-12

rio包

我们推荐的 R 包是:rio。名称“rio”是“RI/O”(输入/输出)的缩写。

它的功能import()export()可以处理许多不同的文件类型(例如.xlsx、.csv、.rds、.tsv)。当您提供这些函数的文件路径(包括“.csv”之类的文件扩展名)时,rio将读取扩展名并使用正确的工具导入或导出文件。

注意:如果您尝试导入列表,请使用import_list()以完整的原始结构和内容导入它。

rio::import_list("my_list.Rdata")

here包

here()可以很容易地告诉 R 在哪里找到和保存你的文件——本质上,它构建了文件路径。

与 R 项目结合使用,here允许您描述 R 项目中文件相对于 R 项目根目录(顶级文件夹)的位置。当 R 项目可能由多个人/计算机共享或访问时,这很有用。它可以防止由于不同计算机上的唯一文件路径而导致的复杂性(例如 "C:/Users/Laura/Documents...",通过在所有用户共同的位置(R 项目根目录)“启动”文件路径)。

这是here()在 R 项目中的工作方式:

  • 当第一次在 R 项目中加载here包时,它会在 R 项目的根文件夹中放置一个名为“.here”的小文件作为“基准”或“锚”
  • 在您的脚本中,要引用 R 项目的子文件夹中的文件,您可以使用该函数here()来构建与该锚点相关的文件路径
  • 要构建文件路径,请将根目录以外的文件夹名称写在引号内,用逗号分隔,最后以文件名和文件扩展名结尾,如下所示
  • here()文件路径可用于导入和导出

例如,在下面,为函数import()提供了一个用here().

linelist <- import(here("data", "linelists", "ebola_linelist.xlsx"))

该命令here("data", "linelists", "ebola_linelist.xlsx")实际上提供了用户计算机唯一的完整文件路径:

"C:/Users/Laura/Documents/my_R_project/data/linelists/ebola_linelist.xlsx"

提示:如果您不确定“.here”根设置在哪里,请here()使用空括号运行该函数。

绝对路径(不推荐)

linelist <- import("C:/Users/Laura/Documents/analysis/data/linelists/ebola_linelist.xlsx")

导入数据

导入位于“工作目录”或 R 项目根文件夹中的 csv 文件:

linelist <- import("linelist_cleaned.csv")

导入位于 R 项目子文件夹下的文件

如“data”和“linelists”子文件夹中的 Excel 工作簿的第一张表(使用 构建的文件路径here()):

linelist <- import(here("data", "linelists", "linelist_cleaned.xlsx"))

使用绝对文件路径导入数据框(.rds 文件):

linelist <- import("C:/Users/Laura/Documents/tuberculosis/data/linelists/linelist_cleaned.rds")

特定的 Excel 工作表

my_data <- import("my_excel_file.xlsx", which = "Sheetname")
# Demonstration: importing a specific Excel sheet when using relative pathways with the 'here' package
linelist_raw <- import(here("data", "linelist.xlsx"), which = "Sheet1")

缺失值

您可能需要指定数据集中的哪些值应被视为缺失。正如缺失数据页面中所述,R 中缺失数据的值为NA,但您要导入的数据集可能使用 99、“缺失”或只是空字符空间“”。

使用na =参数 forimport()并在引号内提供值(即使它们是数字)。您可以通过将它们包含在向量中来指定多个值,c()如下所示。

linelist <- import(here("data", "my_linelist.xlsx"), na = "99")
linelist <- import(here("data", "my_linelist.csv"), na = c("Missing", "", " "))

跳过行

有时,您可能希望避免导入一行数据。如果在 .xlsx 或 .csv 文件上skip =使用import()from rio ,则可以使用参数执行此操作。提供要跳过的行数。

linelist_raw <- import("linelist_raw.xlsx", skip = 1)  # does not import header row

不幸的是skip =只接受一个整数值,而不是一个范围(例如“2:10”不起作用)。要跳过从顶部不连续的特定行的导入,请考虑多次导入并使用bind_rows()from dplyr

管理第二个标题行

有时,您的数据可能有第二行,例如,如果它是如下所示的“数据字典”行。这种情况可能会出现问题,因为它可能导致所有列都作为类“字符”导入。

下面是这种数据集的一个例子(第一行是数据字典)。

要删除第二个标题行,您可能需要导入两次数据。

  1. 导入数据以存储正确的列名
  2. 再次导入数据,跳过前行(标题和第二行)
  3. 将正确的名称绑定到缩减的数据帧上

用于绑定正确列名的确切参数取决于数据文件的类型(.csv、.tsv、.xlsx 等)。这是因为rio对不同的文件类型使用不同的函数(见上表)。

对于 Excel 文件:( col_names =)

# import first time; store the column names
linelist_raw_names <- import("linelist_raw.xlsx") %>% names()  # save true column names

# import second time; skip row 2, and assign column names to argument col_names =
linelist_raw <- import("linelist_raw.xlsx",
                       skip = 2,
                       col_names = linelist_raw_names
                       ) 

 对于 CSV 文件:( col.names =)

# import first time; sotre column names
linelist_raw_names <- import("linelist_raw.csv") %>% names() # save true column names

# note argument for csv files is 'col.names = '
linelist_raw <- import("linelist_raw.csv",
                       skip = 2,
                       col.names = linelist_raw_names
                       ) 

制作数据字典

dict <- linelist_2headers %>%             # begin: linelist with dictionary as first row
  head(1) %>%                             # keep only column names and first dictionary row                
  pivot_longer(cols = everything(),       # pivot all columns to long format
               names_to = "Column",       # assign new column names
               values_to = "Description")

合并两个标题行

在某些情况下,当您的原始数据集有两个标题行(或者更具体地说,第二行数据是辅助标题)时,您可能希望“组合”它们或将第二个标题行中的值添加到第一个标题行中。

下面的命令将定义数据帧的列名称作为第一个(True)标头的组合(粘贴在一起),其值在下面的值(在第一行中)。

names(my_data) <- paste(names(my_data), my_data[1, ], sep = "_")

谷歌表格

您可以使用Googlesheet4包从在线Google电子表格导入数据,并通过对电子表格进行验证。

pacman::p_load("googlesheets4")
Gsheets_demo <- read_sheet("https://docs.google.com/spreadsheets/d/1scgtzkVLLHAe5a6_eFQEwkZcc14yFUx1KgOMZ4AKUfY/edit#gid=0")
#也可以仅使用Sheet ID导入纸张,其中URL的较短部分:
Gsheets_demo <- read_sheet("1scgtzkVLLHAe5a6_eFQEwkZcc14yFUx1KgOMZ4AKUfY")

另一个包googledrive提供了用于编写、编辑和删除 Google 表格的有用功能。例如,使用此包中的gs4_create()andsheet_write()函数。

以下是一些其他有用的在线教程:
基本的 Google 表格导入教程
更详细的教程
googlesheets4 和 tidyverse 之间的交互

多个文件 - 导入、导出、拆分、组合

有关如何导入和合并多个文件或多个 Excel 工作簿文件的示例,请参阅迭代、循环和列表页面。该页面还包含有关如何将数据框拆分为多个部分并单独导出每个部分或作为 Excel 工作簿中的命名工作表的示例。

从 Github 导入

将数据直接从 Github 导入 R 可能非常容易,或者可能需要几个步骤 - 取决于文件类型。以下是一些方法:

CSV 文件

使用 R 命令将 .csv 文件直接从 Github 导入 R 很容易。

  1. 转到 Github 存储库,找到感兴趣的文件,然后单击它
  2. 单击“Raw”按钮(然后您将看到“原始”csv 数据,如下所示)
  3. 复制 URL(网址)
  4. 将 URL 放在import()R 命令中的引号中

手动数据输入

按行输入

使用tribble来自tidyverse 的tibble包中的函数(在线 tibble 参考)。

请注意列标题​​以波浪号~) 开头。另请注意,每一列只能包含一类数据(字符、数字等)。您可以使用制表符、间距和新行来使数据输入更加直观和可读。值之间的空格无关紧要,但每一行都由一行新代码表示。例如:

# create the dataset manually by row
manual_entry_rows <- tibble::tribble(
  ~colA, ~colB,
  "a",   1,
  "b",   2,
  "c",   3
  )

按列输入

由于数据框由向量(垂直列)组成,因此在 R 中手动创建数据框的基本方法希望您定义每一列,然后将它们绑定在一起。这在流行病学中可能是违反直觉的,因为我们通常会按行考虑我们的数据(如上所述)。

# define each vector (vertical column) separately, each with its own name
PatientID <- c(235, 452, 778, 111)
Treatment <- c("Yes", "No", "Yes", "Yes")
Death     <- c(1, 0, 1, 0)
# combine the columns into a data frame, by referencing the vector names
manual_entry_cols <- data.frame(PatientID, Treatment, Death)

注意:所有向量的长度必须相同(值的数量相同)。

API

“自动化编程接口”(API)可用于直接从网站请求数据。API 是一组规则,允许一个软件应用程序与另一个应用程序交互。客户(您)发送“请求”并接收包含内容的“响应”。R 包httrjsonlite可以促进这个过程。

每个启用 API 的网站都有自己的文档和细节供您熟悉。有些网站是公开的,任何人都可以访问。其他的,例如具有用户 ID 和凭据的平台,需要进行身份验证才能访问其数据。

不用说,必须有互联网连接才能通过 API 导入数据。我们将简要介绍使用 API 导入数据的示例,并将您链接到更多资源。

注意:请记住,数据可能会在没有 API 的网站上发布*,这可能更容易检索。例如,可以通过提供站点 URL 来访问发布的 CSV 文件,
从 Github 导入部分中所述的
import()

HTTP 请求

API 交换最常通过 HTTP 请求完成。HTTP 是超文本传输​​协议,是客户端和服务器之间请求/响应的底层格式。确切的输入和输出可能会因 API 的类型而异,但过程是相同的——来自用户的“请求”(通常是 HTTP 请求),通常包含查询,然后是“响应”,包含有关请求和可能请求的内容。

以下是HTTP 请求的一些组成部分:

  • API 端点的 URL
  • “方法”(或“动词”)
  • 标头
  • 身体

HTTP 请求“方法”是您要执行的操作。两种最常见的 HTTP 方法是GETPOST但其他可能包括PUTDELETE,PATCH等。在将数据导入 R 时,您很可能会使用GET.

在您提出请求后,您的计算机将收到格式与您发送的内容类似的“响应”,包括 URL、HTTP 状态(您想要的是状态 200!)、文件类型、大小和所需内容。然后,您需要解析此响应并将其转换为 R 环境中的可用数据框。

httr包非常适合在 R 中处理 HTTP 请求。它几乎不需要 Web API 的先验知识,并且可供不太熟悉软件开发术语的人使用。另外,如果 HTTP 响应是 .json,可以使用jsonlite来解析响应。

# load packages
pacman::p_load(httr, jsonlite, tidyverse)

公开数据

下面是一个 HTTP 请求示例,借鉴自Trafford Data Lab的教程。该站点还有其他一些学习资源和 API 练习。

场景:我们要导入英国特拉福德市的快餐店列表。这些数据可以从食品标准局的 API 中获取,该 API 为英国提供食品卫生评级数据。

以下是我们请求的参数:

R代码如下:

# prepare the request
path <- "http://api.ratings.food.gov.uk/Establishments"
request <- GET(url = path,
             query = list(
               localAuthorityId = 188,
               BusinessTypeId = 7844,
               pageNumber = 1,
               pageSize = 5000),
             add_headers("x-api-version" = "2"))

# check for any server error ("200" is good!)
request$status_code

# submit the request, parse the response, and convert to a data frame
response <- content(request, as = "text", encoding = "UTF-8") %>%
  fromJSON(flatten = TRUE) %>%
  pluck("establishments") %>%
  as_tibble()

需要身份验证

某些 API 需要身份验证 - 以便您证明自己的身份,以便您可以访问受限数据。要导入这些数据,您可能需要首先使用 POST 方法提供用户名、密码或代码。这将返回一个访问令牌,可用于后续 GET 方法请求以检索所需数据。

下面是一个从Go.Data查询数据的示例,它是一个爆发调查工具。Go.Data使用 API 进行 Web 前端和用于数据收集的智能手机应用程序之间的所有交互。Go.Data在全球范围内使用。由于爆发数据很敏感,并且您应该只能访问爆发的数据,因此需要进行身份验证。

下面是一些示例 R 代码,使用httrjsonlite连接到Go.Data API 以导入爆发后的联系人跟进数据。

# set credentials for authorization
url <- "https://godatasampleURL.int/"           # valid Go.Data instance url
username <- "username"                          # valid Go.Data username 
password <- "password"                          # valid Go,Data password 
outbreak_id <- "xxxxxx-xxxx-xxxx-xxxx-xxxxxxx"  # valid Go.Data outbreak ID

# get access token
url_request <- paste0(url,"api/oauth/token?access_token=123") # define base URL request

# prepare request
response <- POST(
  url = url_request,  
  body = list(
    username = username,    # use saved username/password from above to authorize                               
    password = password),                                       
    encode = "json")

# execute request and parse response
content <-
  content(response, as = "text") %>%
  fromJSON(flatten = TRUE) %>%          # flatten nested JSON
  glimpse()

# Save access token from response
access_token <- content$access_token    # save access token to allow subsequent API calls below

# import outbreak contacts
# Use the access token 
response_contacts <- GET(
  paste0(url,"api/outbreaks/",outbreak_id,"/contacts"),          # GET request
  add_headers(
    Authorization = paste("Bearer", access_token, sep = " ")))

json_contacts <- content(response_contacts, as = "text")         # convert to text JSON

contacts <- as_tibble(fromJSON(json_contacts, flatten = TRUE))   # flatten JSON to tibble

注意:如果您从需要身份验证的 API 导入大量数据,则可能会超时。为避免这种情况,请在每个 API GET 请求之前再次检索 access_token 并尝试在查询中使用过滤器或限制。

提示: jsonlite包中的fromJSON()函数在第一次执行时不会完全取消嵌套,因此您可能仍然在生成的 tibble 中有列表项。您将需要进一步取消嵌套某些变量;取决于您的 .json 的嵌套程度。要查看这方面的更多信息,请查看jsonlite包的文档,例如functionflatten()

有关更多详细信息,请查看LoopBack Explorer上的文档、联系人跟踪页面或Go.Data Github 存储库上的 API 提示

您可以在此处阅读有关httr包的更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R-应用流行病学和公共卫生-5.导入 的相关文章

  • 聚类算法(二)--层次聚类法

    本文主要介绍层次聚类法的基本原理 距离计算方法 算法的优缺点 以及R语言实战 一 概述 层次聚类 Hierarchical Clustering 试图在不同层次上对数据集进行划分 从而形成树形的聚类结构 数据集的划分可采用 自底向上 的聚合
  • Rstudio更换主题/样式

    github项目地址 https github com gadenbuie rsthemes 安装 在 rstudio 的控制台console中数据 install packages devtools devtools install gi
  • 论文R语言复现

    高斯混合概率在众多领域都有重要应用 依据已知观测数据估计高斯模型中未知参数就显得尤为重要 由于观测值具体来自于高斯分布的哪个分模型是未知的 那么利用传统的极大似然 MLE 方法进行参数估计就变得十分困难 引入 EM 算法 该方法通过构造分布
  • R语言描述性统计

    使用Hmisc这个包 只需要调用 my data read csv test csv Hmisc describe my data 可以打印出各个变量的均值方差等信息
  • PCE投稿要求

    进入PCE的投稿网址 http mc manuscriptcentral com pce 查了一下 大家都建议创建ORCID号 于是按照指示创建了 蓝色笔圈起来的是一些投稿指导 于是打开Instructions Forms Instruct
  • R语言数据拆分

    博主的话 大家好 这里是bio 先赞后看养成习惯 还没关注的小伙伴点点关注不迷路 今天是南方的小年 祝福大家小年快乐 目录 博主的话 前言 一 split 函数 二 subset 函数 总结 前言 今天继续学习R语言 我们之前已经介绍过了数
  • 使用R语言的names函数为DataFrame数据中的所有列进行重命名

    使用R语言的names函数为DataFrame数据中的所有列进行重命名 在R语言中 DataFrame是一种常用的数据结构 用于存储和处理表格型数据 有时候 我们需要为DataFrame中的列重新命名 以便更好地理解和处理数据 这时可以使用
  • R语言的Rattle可视化BI数据挖掘分析工具

    Rattle介绍 Rattle是一个免费的开源数据挖掘工具包 使用 Gnome 图形界面以统计语言 R编写 它在GNU Linux Macintosh OS X和MS Windows下运行 Rattle正在澳大利亚和国际上用于商业 政府 研
  • 如何用R分析CNKI文献关键词词频?

    疑惑 如何用VOSviewer分析CNKI数据 一文发布后 有同学问我 王老师 我有个问题 我用cnki导出关键词后 想统计关键词的词频 我应该用什么样的工具 如果不利用citespace和python 做出excel那种的统计表格 该怎么
  • 802.11K/V/R协议介绍

    802 11K V R协议介绍 1 传统无线漫游介绍 1 1 什么是无线漫游 一台无线终端备 STA 通过连接Wi Fi获取上网体验 Wi Fi名称 又称为SSID 是由无线接入网 AP 提供的 因为一台AP设备的覆盖范围有限 所以无线网络
  • 如何编写R函数

    转载自http blog sciencenet cn blog 255662 501317 html R语言实际上是函数的集合 用户可以使用base stats等包中的基本函数 也可以自己编写函数完成一定的功能 但是初学者往往认为编写R函数
  • ggplot2作图之系统发育树

    library ape tree lt read tree text A B C D E F G H I J K L M N O P library ggtree ggtree tree branch length none ladderi
  • 使用R语言构建泊松回归模型

    使用R语言构建泊松回归模型 泊松回归是一种广泛应用于计数数据分析的回归模型 它是基于泊松分布的概率模型 用于描述事件在一定时间或空间范围内发生的次数 在本文中 我们将学习如何使用R语言构建泊松回归模型 并提供相应的源代码示例 1 数据准备
  • R语言GGPLOT2绘制圆环图雷达图/星形图/极坐标图/径向图Polar Chart可视化分析汽车性能数据

    最近我们被客户要求撰写关于可视化的研究报告 包括一些图形和统计输出 漂亮的圆形图 我不确定对数据分析师本身是否有额外的好处 但如果能吸引决策者的注意 那对我来说就是额外的价值 然而 用coord polar 或偶尔发现的ggplot2中的c
  • r如何让新增加的列出现在第一列 r如何调整新增加的列的位置

    https www cnblogs com liujiaxin2018 p 16211983 html 1 任意位置插入列 复制代码 gt a lt letters 1 5 gt b lt LETTERS 1 5 gt c lt sampl
  • 统计学三大分布(卡方、t、F)即相应概率密度图的R语言实现

    三大统计分布 1 2 chi 2 2分布 设随机变量 X 1
  • R语言 write.xlsx() 写入同一excel,及同一sheet注意

    write xlsx x file sheetName Sheet1 col names TRUE row names TRUE append FALSE showNA TRUE 1 想要将data1写da xlsx的sheet1 data
  • [R语言] R语言PCA分析教程 Principal Component Methods in R

    R语言PCA分析教程 Principal Component Methods in R 代码下载 主成分分析Principal Component Methods PCA 允许我们总结和可视化包含由多个相互关联的定量变量描述的个体 观察的数
  • R语言实现RMF模型

    RMF模型说明 RMF模型是客户管理中 常被用来衡量客户价值和客户创利能力的重要方法 它主要考量三个指标 最近一次消费 Recency 近期购买的客户倾向于再度购买 消费频率 Frequency 经常购买的客户再次购买概率高 消费金额 Mo
  • R语言采集获取58商铺出租转让信息

    前两篇文章给我一个朋友分析出店铺商品以及地址房源信息 后来去看了下店铺房租有点贵 还是毛坯房 要自己装修 本着节约成本的原则 熬了个通宵 给他采集了一些转租商铺数据 因为数据比较多 过于先进不方便展示 我就将我爬虫程序的模版展示给大家观看

随机推荐

  • 刀片服务器做虚拟机,刀片服务器Vmware虚拟化部署经验分享(初稿).docx

    HP C7000刀片服务器虚拟机部署经验分享 本文主要介绍一台新的 HP C7000 刀片服务器从上架加电到进行虚拟机部署的主要步骤 第一部分 为刀片系统配置远程管理 首先附 C7000刀片服务器各组件示意图一张 注意图中的 Insight
  • 华为云服务器免费用,CDN免费用,数据库免费用,免费免费,全场免费

    华为云免费专区 全场免费 自从华为云17年进军公有云市场以来 市场份额增长神速 20年华为云以高达259 6 的同比增长速度 已然稳定公有云市场前三的位置 但很多人依然没有试用过华为云的产品 即便性价比很高 也不敢贸然更换厂商 俗话说是骡子
  • 【ubuntu】Anaconda 安装+环境配置:pytorch1.5.0+torchvision0.6.0+cudatoolkit10.1

    1 正确安装anaconda 1 下载对应Anaconda版本 以Anaconda3 5 3 1 Linux x86 64 sh为例 Anaconda下载连接 2 命令安装 bash Anaconda3 5 3 1 Linux x86 64
  • C语言文件详解(超级详细,记得收藏~~~)

    什么是文件 磁盘上的文件是文件 在程序设计中 我们一般读的文件有两种 程序文件 和 数据文件 程序文件包括源程序文件 后缀为 c 目标文件 win下后缀为 obj 可执行文件 win下环境后缀为 exe 数据文件 文件的内容不一定是程序 而
  • java oauth2登录以及权限_OAuth2实现单点登录SSO

    1 前言 技术这东西吧 看别人写的好像很简单似的 到自己去写的时候就各种问题 一看就会 一做就错 网上关于实现SSO的文章一大堆 但是当你真的照着写的时候就会发现根本不是那么回事儿 简直让人抓狂 尤其是对于我这样的菜鸟 几经曲折 终于搞定了
  • WebSocket和HTTP的区别及原理

    HTTP协议 HTTP是单向的 客户端发送请求 服务器发送响应 举例来说 当客户端向服务器发送请求时 该请求以HTTP或HTTPS的形式发送 在接收到请求后 服务器会将响应发送给客户端 每个请求都与一个对应的响应相关联 在发送响应后客户端与
  • Jni基础

    1 JNI 的一般开发流程 1 1 定义好本地的 native 方法 package com darren ndk day13 import java util UUID public class Simple1 public static
  • 【转码方式】-Base64

    Base64 作用 在数据传输过程中 如果报文中存在英文字母以外的字符 就会出现乱码 如中文 图片 或者二进制报文 此时就可以通过Base64将不规则的数据流转化成Base64规定的64个可打印的字符 提高数据的可读性和可打印性 转码原理
  • c++实现合并两个无序数组并以从大到小的顺序排序

    今天做了一下途游游戏的线上笔试题 题目中有一个是合并两个无序数组并排序 从大到小 在这里写一下我的思路 如果有更简单思路的大神请给我留言 我首先想到的一个思路就是把A和B先放在同一个数组里 在随便用一个排序算法对新数组进行排序 这个方法时间
  • Shell脚本中2>&1、>、>>等符号到底是什么含义

    场景 在Linux Shell命令中 我们经常会遇到命令中类似这样的 gt 2 gt 1 符号 那么这些符号是什么含义 有什么用处呢 下面一起来看下 概念 在Linux shell中 0 1 2代表文件描述符 名称 代码 操作符 Java中
  • C++多种解法求最大回文子串

    题目 给定一字符串 求最长的回文子串 解法一 暴力法 循环查找字符串中的所有回文子串 时间复杂度O N3 第一遍循环 选取开始点 i 第二遍循环 选取结束位置 j 第三遍循环 判断 i j 是否为回文字符串 int palindromeA
  • Mysql服务器的外部连接

    目录 前言 Windows上的客户端连接工具有 Linux上连接其他虚拟机上的MySQL服务器 在Windows上通过Navicat连接虚拟机上的Mysql服务器 1 我们先下载好Navicat 2 当我们下载安装好Navicat后 打开它
  • 用org.apache.tools.zip压缩/解压缩zip文件

    package org coolyongzi import java io File import java io FileInputStream import java io FileOutputStream import java io
  • android删除文件夹代码,Android 删除指定文件代码

    package com tware pdfdrop import java io File import android app Activity import android graphics Color import android o
  • LLVM系列第十五章:写一个简单的中间代码生成器IR Generator

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • 关于2023美赛ABCDEF各题的选题

    本文是关于2023美赛各题的选题以及思路分析 占个位置 比赛开始后会在本帖实时更新赛题思路代码 文章末尾获取 持续为更新参考思路 赛题思路 会持续进行思路模型分析 下自行获取 A题思路 比赛开始后第一时间更新 B题思路 比赛开始后第一时间更
  • Qt 控件尺寸设置

    一 运行无误 Qt 的控件在显示时 有时运行没有问题 但是会有以下信息 QWindowsWindow setGeometry Unable to set geometry 247x97 1200 801 frame 273x168 1187
  • 【python、pycharm安装教程】python3.7和pycharm2019最详细安装教程

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 python3 7和pycharm2019最详细安装教程 一 安装python 二 安装Pycharm 安装路径中不要存在中文 一 安装python 1 双击运行python
  • java 根据word文档模板导出word

    1 创建word模板 2 动态数据占位 格式 xxxxx 3 点击另存为xml格式 4 修改后缀名为ftl 5 导入到idea中 6 修改文件编码为utf 8 7 复制模板内容在线代码格式化 8 编辑模板中内容 如果有空值会报错 可以 xx
  • R-应用流行病学和公共卫生-5.导入

    rio包 我们推荐的 R 包是 rio 名称 rio 是 RI O 输入 输出 的缩写 它的功能import 和export 可以处理许多不同的文件类型 例如 xlsx csv rds tsv 当您提供这些函数的文件路径 包括 csv 之类