R語言學習筆記之語言入門基礎

一、R語言基礎

快速熟悉R語言中的基本概念,先入個門。

1、運算符

運算符含義例子
+1 + 1
-3 - 2
*3 * 2
/9 / 3
^(**)乘方2 ^ 3? ?2 ** 3
%%取余5 %% 2
%/%取整5 %/% 2

2、賦值符號

等號=a = 1三者等價:把1賦值給變量a
左箭頭<?a <- 1
右箭頭?>1 -> a

?3、基本數據類型

類型

數值型

"numeric"

class函數來探查數據的類型

數值型數據還可以分為:整數型(integer)和雙精度型(double)

數字會被自動認為雙精度型

聲明使用的數據是整數型:在數值后面加上L

可以使用typeof函數查看數值型數據的具體類型

邏輯型

"logical"

大于(>)、大于或等于(>=)、

小于(<)、小于或等于(<=)、

等于(==)、不等于(!=)

?缺失值(NA)的數據類型也被歸為邏輯型數據

字符型

"character"

所有文本類型的數據都屬于字符型,附上雙引號或單引號進行定義。

class("abc")

class("復旦大學")

可以使用“==”或“!=”符號來判斷兩個文本是不是完全一致

"hope" == "hope"

"hope" != "Hope"

因子型

"factor"

因子型,被視為把字符型數據以數值型保存的特殊格式

利用factor函數創造因子變量

a = factor("男")

as系列函數來進行強制類型轉換,因子變量的字符形態數值形態

as.numeric(a)

as.character(a)

轉換失敗時,會返回缺失值NA,并輸出警告

as.character(12345)

as.numeric("hello")

4、數據結構

向量

vector

c("你","我","他")?

length(c(1,3,4))?

矩陣

matrix

matrix(1:9,nrow = 3,ncol = 3)

a = matrix(1:12,ncol = 3) #nrow和ncol參數可以只定義一個

dim(a)? ?#使用dim函數可以知道矩陣一共有幾行幾列

列表

list

a = list(3,TRUE,"hello")

數據框

data.frame

數據框是一種特殊的二維數據結構。同為二維數據結構,與矩陣不同的是,它的每一列可以視為一個向量,而每一行則可以視為一個列表。因此在一個數據框中可以有不同的屬性(以列的形式存在)?,每一行則代表著一個觀測實體。

library(pacman)

p_load(tidyfst)

as_dt(iris)? ?#利用了tidyfst包的as_dt函數,把iris轉換為data.table格式

注意:<num>是numeric的縮寫,<fctr>是factor的縮寫)

5、程序流程控制

選擇結構

在只有一條執行語句的時候,不需要寫花括號

如果需要執行多個語句,則需要加上花括號。

保險起見,應該在所有if語句和else語句之后都加上花括號.

ifelse函數,如滿足第一個條件,執行第一項;否則,執行第二項

for循環

希望跳過某一個循環,例如在i等于3的時候,我們不要打印。這時候就可以使用next語句。這個類似于其他語言中的continue用法。

while循環

還有一種特殊的循環模式叫作repeat,它相當于while(1){…}。也就是說,這個循環如果沒有內置的停止機制,就會一直運行下去,可以在里面附加條件語句來終止運行。

6、函數

利用function函數來定義一個函數。

所有的R函數中,我們會把函數的最后一個執行結果作為函數的返回值。

4.0.0版本以后的R語言支持函數的便捷寫法,可以使用一個反斜杠(\)來代表函數(function)。

也可以使用return函數顯式地返回一個值。

二、管道操作符

管道操作符(%>%)是由magrittr包提供的方便操作符,能夠讓數據在函數之間快速傳遞,避免中間變量的生成,從而減少內存的占用。

管道操作符會讓之前生成的結果作為第一個參數傳遞到后面的函數中,即f(x)與x %>% f()是等價的

mean(1:3)
1:3 %>% mean()

當數據不是作為第一個參數傳遞到后面的函數,這時候可以使用“.”作為前面數據的指代來放在后面的函數中


lm(Sepal.Length~Sepal.Width,data=iris)
iris %>% lm(Sepal.Length~Sepal.Width,data=.)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66944.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66944.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡三張表(ARP表、MAC表、路由表)總結

參考&#xff1a; 網絡三張表&#xff1a;ARP表, MAC表, 路由表&#xff0c;實現你的網絡自由&#xff01;&#xff01;_mac表、arp表、路由表-CSDN博客 網絡中的三張表&#xff1a;ARP表、MAC表、路由表 首先要明確一件事&#xff0c;如果一個主機要發送數據&#xff0c;那么必…

【Nomoto 船舶模型】

【Nomoto 船舶模型】 1. Nomoto 船舶模型簡介2. 來源及發展歷程3. 構建 一階模型Nomoto 船舶模型3.1 C 實現3.2 Python 實現3.3 說明 5. 參數辨識方法5.1 基于最小二乘法的參數辨識5.2 數學推導5.3 Python 實現5.4 說明 4. 結論參考文獻 1. Nomoto 船舶模型簡介 Nomoto 模型是…

差分進化算法 (Differential Evolution) 算法詳解及案例分析

差分進化算法 (Differential Evolution) 算法詳解及案例分析 目錄 差分進化算法 (Differential Evolution) 算法詳解及案例分析1. 引言2. 差分進化算法 (DE) 算法原理2.1 基本概念2.2 算法步驟3. 差分進化算法的優勢與局限性3.1 優勢3.2 局限性4. 案例分析4.1 案例1: 單目標優化…

深入理解GPT底層原理--從n-gram到RNN到LSTM/GRU到Transformer/GPT的進化

從簡單的RNN到復雜的LSTM/GRU,再到引入注意力機制,研究者們一直在努力解決序列建模的核心問題。每一步的進展都為下一步的突破奠定了基礎,最終孕育出了革命性的Transformer架構和GPT大模型。 1. 從n-gram到循環神經網絡(RNN)的誕生 1.1 N-gram 模型 在深度學習興起之前,處理…

【JWT】jwt實現HS、RS、ES、ED簽名與驗簽

JWT 實現 HS、RS、ES 和 ED 簽名與驗簽 簽名方式算法密鑰類型簽名要點驗簽要點HSHMAC-SHA256對稱密鑰- 使用 crypto/hmac 和對稱密鑰生成 HMAC 簽名- 將 header.payload 作為數據輸入- 使用同一密鑰重新計算 HMAC 簽名- 比較計算結果與接收到的簽名是否一致RSRSA-SHA256公鑰 …

地址欄信息location

獲取信息 頁面跳轉 location.href當前地址欄信息 location.assign()設置跳轉新的頁面 location.replace() location.reload()刷新頁面

程序員轉型測試:解鎖漏洞挖掘新旅程

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄 程序…

StarRocks常用命令

目錄 1、StarRocks 集群管理&配置命令 2、StarRocks 常用操作命令 3、StarRocks 數據導入和導出 1、StarRocks 集群管理&配置命令 查詢 FE 節點信息 SHOW frontends; SHOW PROC /frontends; mysql -h192.168.1.250 -P9030 -uroot -p -e "SHOW PROC /dbs;"…

08-ArcGIS For JavaScript-通過Mesh繪制幾何體(Cylinder,Circle,Box,Pyramid)

目錄 概述代碼實現1、Mesh.createBox2、createPyramid3、Mesh.createSphere4、Mesh.createCylinder 完整代碼 概述 對于三維場景而言&#xff0c;二位的點、線、面&#xff0c;三維的圓、立方體、圓柱等都是比較常見的三維對象&#xff0c;在ArcGIS For JavaScript中我們知道點…

Linux中page、buffer_head、bio的關系

在Linux中&#xff0c;page、buffer_head、bio這三個概念緊密相關&#xff0c;共同構成了塊設備I/O和內存管理的重要部分&#xff0c;它們的聯系主要體現在以下方面&#xff1a; page與buffer_head 基于page構建&#xff1a;buffer_head通常是基于page來構建的&#xff0c;一…

直線擬合例子 ,嶺回歸擬合直線

目錄 直線擬合,算出離群點 嶺回歸擬合直線&#xff1a; 直線擬合,算出離群點 import cv2 import numpy as np# 輸入的點 points np.array([[51, 149],[122, 374],[225, 376],[340, 382],[463, 391],[535, 298],[596, 400],[689, 406],[821, 407] ], dtypenp.float32)# 使用…

SpringCloud兩種注冊中心

SpringCloud 基本概念 系統架構 我們之前做的所有的項目都屬于單體架構&#xff0c;下面我們將要學習更適合大型項目的分布式架構 單體架構&#xff1a; 將業務的所有功能幾種在一個項目中開發&#xff0c;打成一個包部署。 優點&#xff1a;架構簡單、部署成本低 缺點&am…

SpringAI 搭建智能體(二):搭建客服系統智能體

在現代人工智能應用中&#xff0c;智能體&#xff08;Agent&#xff09; 是一個重要的概念&#xff0c;它的核心能力是自主性與靈活性。一個智能體不僅能夠理解用戶的需求&#xff0c;還能拆解任務、調用工具完成具體操作&#xff0c;并在復雜場景中高效運行。在本篇博客中&…

SVN客戶端使用手冊

目錄 一、簡介 二、SVN的安裝與卸載 1. 安裝&#xff08;公司內部一般會提供安裝包和漢化包&#xff0c;直接到公司內部網盤下載即可&#xff0c;如果找不到可以看下面的教程&#xff09; 2. 查看SVN版本 ?編輯 3. SVN卸載 三、SVN的基本操作 1. 檢出 2. 清除認證數據 3. 提交…

HTML 文本格式化詳解

在網頁開發中&#xff0c;文本內容的呈現方式直接影響用戶的閱讀體驗。HTML 提供了多種文本格式化元素&#xff0c;可以幫助我們更好地控制文本的顯示效果。本文將詳細介紹 HTML 中的文本格式化元素及其使用方法&#xff0c;幫助你輕松實現網頁文本的美化。 什么是 HTML 文本格…

衡量算法性能的量級標準:算法復雜度

今天開始數據結構的學習&#xff01;作為一大重點&#xff0c;拿出態度很重要&#xff0c;想要真實掌握&#xff0c;博客筆記自然少不了&#xff01;重點全部上色&#xff01;避免疏忽 下面我們從0基礎開始學習今天的第一節&#xff01;不用擔心看不懂&#xff0c;拒絕枯燥的理…

Spring Boot Starter介紹

前言 大概10來年以前&#xff0c;當時springboot剛剛出現并沒有流行&#xff0c;當時的Java開發者們開發Web應用主要是使用spring整合springmvc或者struts、iBatis、hibernate等開發框架來進行開發。項目里一般有許多xml文件配置&#xff0c;其中配置了很多項目中需要用到的Be…

Java面試題2025-Spring

講師&#xff1a;鄧澎波 Spring面試專題 1.Spring應該很熟悉吧&#xff1f;來介紹下你的Spring的理解 1.1 Spring的發展歷程 先介紹Spring是怎么來的&#xff0c;發展中有哪些核心的節點&#xff0c;當前的最新版本是什么等 通過上圖可以比較清晰的看到Spring的各個時間版本對…

Linux 切換到 Root 用戶的方式及差異詳解

在 Linux 系統中&#xff0c;切換到 root 用戶進行管理和操作是常見需求。不同的切換方法會影響環境變量、工作目錄以及加載的配置文件。本文將介紹幾種常用的切換方式及它們的特點。 切換到 Root 用戶的主要方式 1. sudo su 這是通過 sudo 提權后調用 su 切換到 root 用戶的…

虹科分享 | 汽車NVH小課堂之聽音辨故障

隨著車主開始關注汽車抖動異響問題&#xff0c;如何根據故障現象快速診斷異響來源&#xff0c;成了汽修人的必修課。 一個比較常用的方法就是靠“聽”——“聽音辨故障”。那今天&#xff0c;虹科Pico也整理了幾個不同類型的異響聲音&#xff0c;一起來聽聽看你能答對幾個吧 汽…