新手(初学者)学R语言第一课,从学正确导入数据开始

初看题目好像我在教你怎么导入数据,不不不,我是在教你正确的导入数据,不是说数据导入R就叫正确导入数据了。本章为新手教程,老手可以跳过。
这个内容早就想写了,今天有点空和大家聊一下。为什么R语言对于新手而言不太友好,有些人觉得R很难学。很多原因都有,我今天来说下没有正确导入数据的报错,比如下面报错

Error in xtfrm.data.frame(x) : cannot xtfrm data frames

在这里插入图片描述
这对新手来说绝对是个大打击,你根本没法找到原因,会影响及的积极性和学R的信心,因为我就是这么走过来的。
因为R语言是个注重格式的语言,目前导入数据的R包种类繁多,有些R包存在格式转换问题,所以导入数据后分析容易出现各种各样的问题。我以我一个粉丝发给我的数据和代码为例子,就是以我写得scitb5函数来做个亚组分析得交互表,分析的内容详见这篇文章《scitb5函数2.1版本(交互效应函数P for interaction)发布----用于一键生成交互效应表、森林图》
先导入R包和我写得函数

library(tidyverse)
setwd("E:/公众号文章2024年/新手第一课,从学导入数据开始/scitb5")
source("./helper/21scitb5.R")

用我文章示例得代码导入数据

d1 <- read.csv("zaochan.csv", sep = ",", header = TRUE)

在这里插入图片描述
设置协变量和交互变量,

cov1        <- c("lwt", "smoke", "ptl", "ui", "ftv", "race")
interaction <- c("race", "smoke", "ui")

转换数据

bc1 <- d1 %>%mutate(race = case_match(race,"black" ~ 1,"white" ~ 2,"other" ~ 3)) %>%mutate(smoke = if_else(smoke == "nonsmoker", 0, 1)) %>%mutate(across(c(race, low, ht, ui), factor))

最后使用我的sicitb5函数生成表,似乎一切很顺利,得出结果。

out <- scitb5(data        = bc1, x           = "age", y           = "low", Interaction = interaction, cov         = cov1, family      = "glm")

在这里插入图片描述
下面咱们用readr包导入数据再跑一次

library(readr)
d2 <- readr::read_csv("zaochan.csv")

在这里插入图片描述
好像几乎一样,没什么问题,但是还是不一样的

bc2 <- d2 %>%mutate(race = case_match(race,"black" ~ 1,"white" ~ 2,"other" ~ 3)) %>%mutate(smoke = if_else(smoke == "nonsmoker", 0, 1)) %>%mutate(across(c(race, low, ht, ui), factor))

生成结果

out <- scitb5(data        = bc2, x           = "age", y           = "low", Interaction = interaction, cov         = cov1, family      = "glm"
)

在这里插入图片描述
同样的代码,换个导入数据方法就跑不出来了,而且这个报错你根本看不出来是什么回事,没办法修改。
有人可能会说这是我scitb5函数的bug,但其实不是是这句很普通代码的报错,一句涉及数据转换的代码,这句代码应该很常用,涉及很多场景,很多R包都会用

length(levels(factor(bc2[,"low"]))) == 2

在这里插入图片描述
还有这句很普通的代码也会经常报错

d2<-rbind(d2,d1)

也会有人会说这只是个小概率事件,但是这样的例子很多,两三页都翻不完
在这里插入图片描述
这只是一个小例子,还有其他很多千奇百怪的报错。
这样类似容易出错的R包还有readxl包,haven包等因为这些包可以直接导入excel文件,方便是方便了,但是有时会容易出现莫名其妙的错误。不是说这些包没有用,还是有很大用处的(比如在一些特殊的场景),但是对新手来说,稳定不容易出错才是他们目前最需要的。
因此正确的常规导入数据方法是很重要的
我推荐两种方法导入数据,这些都是我长期实践觉得比较稳定,不容易出错的,
第一:就是如果你是excel数据:
我们点:文件----另存为----csv格式
在这里插入图片描述
然后用R自带的格式导入,示例如下

bc<-read.csv("E:/r/test/nahnesme.csv",sep=',',header=TRUE)

第二:如果是SPSS数据,咱们可以使用foreign包,如我乳腺癌的例子,to.data.frame=T这个一定要有,因为这句等于把数据转成数据框。

library(foreign)
bc <- read.spss("E:/r/Breast cancer survival agec.sav",use.value.labels=F, to.data.frame=T)

在这里插入图片描述
上面这个报错在部分情况使用下面代码把数据强制转成数据框格式有一定几率也可以解决问题

d2<-as.data.frame(d2)

但是对于新手来说,良好的数据导入习惯是成长很好的帮助。

其他数据以此参考,本期结束。

下面是个视频介绍

新手学R第一课,从学正确导入数据开始

最后和大家汇报一下,目前nhanes阈值效应函数已经基本写好,目前正在测试中,估计过段时间就可以和大家见面了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/32255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx启动之后任务管理器里面没有nginx进程

原因1&#xff1a;确保你的nginx文件夹里面只包含英文路径&#xff01;绝对不能有中文&#xff01; 原因2&#xff1a; 到conf\nginx.conf里面查看端口和IP地址是否正确设置&#xff0c;ip地址有无正确输入

SpringCloud-nacos基础

SpringCloud-nacos nacos在微服务种有两大作用&#xff1a; 配置中心服务注册中心 配置中心 维度管理 nacos配置中心可以在三个维度进行管理&#xff1a; spring.profiles.active dev/prod/test,通过这个属性可以配置不同环境下的配置文件。 配置的文件名应该为${spring…

【MATLAB】(高数)

参考文章 函数极限 导数与偏导 极值和最值 局部范围的最值 局部范围内的最值&#xff0c;相当于函数的极值 离散数据的最值 多元函数的极值 fminunc [x, fval] fminunc(fun, x0)fun为代求极值的函数&#xff1b;x0为起始点&#xff0c;即从这个点开始寻找极值&#xff0c;…

SpringCloud-OpenFeign基础

OpenFeign OpenFeign简介 OpenFeign是一个基于HTTP协议的RPC&#xff08;远程过程调用&#xff09;组件&#xff0c;用于简化HTTP请求和响应的处理。它通过声明式的方式定义REST API接口&#xff0c;并自动生成实现该接口的客户端代码&#xff0c;从而简化了RESTful服务的调用…

4、MFC:菜单栏、工具栏与状态栏

菜单栏、工具栏与状态栏 1、菜单栏1.1 简介1.2 创建属性设置菜单消息成员函数 1.3 实例 2、工具栏2.1 简介工具栏属性2.2 创建消息CToolBar类的主要成员函数 2.3 实例 3、状态栏3.1 简介3.2 创建CStatusBar类状态栏创建 3.3 实例 1、菜单栏 1.1 简介 菜单在界面设计中是经常使…

渗透测试-若依框架的杀猪交易所系统管理后台

前言 这次是带着摸鱼的情况下简单的写一篇文章&#xff0c;由于我喜欢探究黑灰产业&#xff0c;所以偶尔机遇下找到了一个加密H币的交易所S猪盘&#xff0c;我记得印象是上年的时候就打过这一个同样的站&#xff0c;然后我是通过指纹查找其它的一些站&#xff0c;那个站已经关…

海外短剧系统如何征服观众心

海外短剧系统要征服观众的心&#xff0c;需要综合考虑多个方面。 1、紧凑的剧情设计&#xff1a; 短小精悍&#xff1a;海外短剧通常每集时长不超过半小时&#xff0c;甚至有的仅有几分钟。这种紧凑的剧情设计让观众能够在短时间内迅速沉浸在故事中&#xff0c;无需花费大量时间…

OpenCV一文入门

OpenCV一文入门 官网地址 OpenCV 当前版本 opencv-python 4.9.0.80 python 包地址 https://pypi.org/project/opencv-python/ OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源计算机视觉和机器学习软件库&#xff0c;由Intel最初开发&#xff0c…

oracle中使用临时表GLOBAL TEMPORARY TABLE

需要在存储过程中返回一个临时结果集&#xff0c;这个结果集又是多个语句通过循环查询出来的&#xff0c;这时候就想到了将结果插入到临时表中&#xff0c;然后返回临时表的数据的思路&#xff0c;于是有了以下操作&#xff1a; 1.创建临时表 -- Create table create global …

STM32驱动-ads1112

汇总一系列AD/DA的驱动程序 ads1112.c #include "ads1112.h" #include "common.h"void AD5726_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE );//PORTA、D时钟使能 G…

Oracle报错:ORA-02292: 违反完整约束条件 - 已找到子记录问题解决

目录 一、问题详情 二、原因分析 三、解决方案 一、问题详情 使用Mybatis删除数据的时候&#xff0c;报了如下错误详情&#xff1a; org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLException: ORA-02292: …

数学建模 —— 查找数据

目录 百度搜索技巧 完全匹配搜索&#xff1a;查询词的外边加上双引号“ ” 标题必含关键词&#xff1a;查询词前加上intitle: 搜索文档&#xff1a;空格再输入filetype:文件格式 去掉不想要的&#xff1a;查询词后面加空格后加减号与关键字 知网查文献 先看知网的硕博士…

大脑临界状态:探索思维背后的物理机制

在深度思考或创造性灵感的涌现时刻&#xff0c;个体常体验到一种介于混乱与有序之间的特殊心理状态。这种感受实则反映了大脑在认知过程中的临界状态&#xff0c;这是一种涉及复杂物理现象的心理活动表现。近期研究表明&#xff0c;大脑结构中存在着与临界性密切相关的物理特性…

为什么挂牌量是跟踪楼市情况的核心指标?

通过挂牌量&#xff0c;可以跟踪被动卖出者的数量&#xff0c;从而理解楼市的进展。 引子 楼市的“5.17”新政落地有一个多月了&#xff0c;然而&#xff0c;资本市场对“楼市的复苏预期”却在不断地下修。 以房地产开发的龙头企业保利发展为例&#xff0c;市场在“5.17”新…

学习笔记——路由网络基础——动态路由

五、动态路由 1、动态路由概述 动态路由&#xff1a;通过在设备上运行某种协议&#xff0c;通过该协议自动交互路由信息的过程。 动态路由协议有自己的路由算法&#xff0c;能够自动适应网络拓扑的变化&#xff0c;适用于具有一定数量三“层设备的网络。 动态路由协议适用场…

Python发送Email的性能怎么样?如何配置?

Python发送Email怎么配置SMTP&#xff1f;批发邮件的方法技巧&#xff1f; Python是一种广泛使用的编程语言&#xff0c;因其简洁和强大的功能深受开发者喜爱。在许多应用场景中&#xff0c;Python发送Email是一个常见需求。那么&#xff0c;Python发送Email的性能怎么样呢&am…

基于Java的农机电招平台系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果你对农机电招平台系统感兴趣或有相关开发需求&#xff0c;可以私信联系我。 开发语言 Java 数据库 MySQL 技术 B/S结构&#xff0c;SpringBoot框架 工具 Eclipse&#xff0c;Navicat&#xff0c;Tomcat8.0 系…

代理的匿名级别有哪些?为什么匿名性很重要?

在互联网时代&#xff0c;代理服务器在许多领域都扮演着重要的角色。无论是个人用户还是企业&#xff0c;都可能需要使用代理来保护自己的隐私和数据安全。在选择代理服务时&#xff0c;匿名级别是一个重要的考虑因素。本文将介绍代理的匿名级别&#xff0c;并解释为什么匿名性…

OpenTLD源码生成VS2010工程和编译过程

OpenTLD算法是做什么的&#xff0c;我就不多介绍了&#xff0c;很多人前辈都介绍过了。我参考的博客有 庖丁解牛TLD&#xff08;五&#xff09;——井底之蛙啦~ OpenTLD C 尝试车辆目标跟踪[1] 看了这个挺好玩的&#xff0c;就打算自己编译一下跑跑看。 我的环境是win7 v…

从零开始学JAVA-数组和方法篇

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、数组是什么&#xff1f; 1.格式 2.动态初始化 3.元素的访问 4.静态初始化 5.数组的遍历 6.常见问题 二、方法 1.什么是方法 2.方法定义和调…