R語言—數據基礎及練習

来源:https://www.cnblogs.com/dd0016/archive/2022/10/07/16758541.html
-Advertisement-
Play Games

## 創建leadership數據框 manager <- c(1,2,3,4,5) date <-c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09") country <- c("US","US","UK","UK","UK") gender ...


## 創建leadership數據框
manager <- c(1,2,3,4,5)
date <-c("10/24/08","10/28/08","10/1/08","10/12/08","5/1/09")
country <- c("US","US","UK","UK","UK")
gender <- c("M","F","F","M","F")
age <- c(32,45,25,39,99)
q1 <- c(5,3,3,3,2)
q2 <- c(4,5,5,3,2)
q3 <- c(5,2,5,4,1)
q4 <- c(5,5,5,NA,2)
q5 <- c(5,5,2,NA,1)
leadership <- data.frame(manager,date,country,gender,age,q1,q2,q3,q4,q5,stringsAsFactors = FALSE)
leadership
##創建新變數
leadership <- transform(leadership,q6=q1+q2,q7=(q1+q2)/2)
##變數的重編碼
leadership <- within(leadership,{
                     agecat <- NA
                     agecat[age>75] <- "Elder"
                     agecat[age >=55 & age <=75] <- "Middle Aged"
                     agecat[age <55] <- "Young"})
leadership
##變數的重命名
install.packages("plyr")
library(plyr)
leadership <- rename(leadership, c(manager="managerID",date="testDate"))
leadership
##缺失值
缺失值是不可比較的
缺失數據需在分析前重新編碼為缺失值
is.na(leadership[,6:10])
##在分析中排除缺失值
含有缺失值的算術表達式和函數的計算結果也是缺失值
sum(q4,na.rm=T)
## na.omit()移除所有含有缺失值的觀測
leadership
mydata <- na.omit(leadership)
mydata
##日期值
as.Date()函數 將以字元串形式輸入R中的日期值轉化為以數值形式存儲的日期變數
myformat <- "%m/%d/%y"
leadership$testDate <- as.Date(leadership$testDate,myformat)
leadership
Sys.Date()#返回當天的日期
date()#返回當前的日期和時間
DOB <- as.Date("1997-08-21")
today <- Sys.Date()
difftime(today,DOB,units="weeks")
##類型轉換
is.datatype() 允許根據數據的具體類型加以不同的方式處理
as.datatype() 分析前先將數據進行轉化
##數據排序
order() 預設的排序順序--升序
在排序變數前加一個減號即可得到降序的排序結果
newdata <- leadership[order(leadership$age),]
newdata
##數據集的合併
向數據框添加列 cbind() #不需要一個公共索引
向數據框添加行 rbind() #註意多餘變數的處理
merge(dataframeA,dataframeB,by="") #橫向合併,通過一個或多個共有變數進行聯結
##數據集取子集
選入(保留)變數、剔除(丟棄)變數 #邏輯向量&比較運算符
選入觀測
#subset()函數
newdata <- subset(leadership, age >= 35 | age < 24, select=q1:q4)
newdata


隨機抽樣:從數據集中(有放回或無放回地)抽取大小為n的一個隨機樣本
#sample()函數
mysample <- leadership[sample(1:nrow(leadership),3,replace=F),]
mysample

練習題

一.將1、2、...20構成兩個5*4階的矩陣,其中矩陣A是按列輸入,矩陣B按行輸入

1. 將A和B按照行合併;

2. 將A和B轉化為數據框DA和DB,並將他們的列命名為("ID","A1","A2","A3");

3. 以”ID”為條件將DA和DB進行匹配;

4. 在DA中選取“A2”列大於12且小於15的子集。

 

A=matrix(1:20,nrow=5,byrow=F)
A
B=matrix(1:20,nrow=5,byrow=T)
B

 

#(1)
rbind(A,B)

 

 

#(2)
colnames(A)=c("ID","A1","A2","A3")
DA=data.frame(A)
DA
colnames(B)=c("ID","A1","A2","A3")
DB=data.frame(B)
DB

 

 

#(3)
merge(DA,DB,by="ID")

 

 

#(4)
newdata=subset(DA,A2>12&A2<15,select=ID:A3)
newdata

 

 

二.隨機生成服從均值為2,標準差為3的正態分佈的長度為5的向量x

 

  1. 將x降序排列,生成向量y
  2. 採用有放回抽樣的方式從y中抽取3個元素
  3. 採用不放回抽樣的方式,以概率prob=c(0.1,0.05,0.2,0.5,0.15)從中抽取3個元素。
#均值為2,標準差為3,長度為5的正態分佈
x = rnorm(5,2,3)
x

 

 

#(1)
y=x[order(-x)]
y

 

 

#(2)
y[sample(1:5,3,replace=T)]
y

 

 

#(3)
y[sample(1:5,3,replace=F,prob=c(0.1,0.05,0.2,0.5,0.15))]
y

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ruoyi項目在低於3.7.0的版本中,前端字典功能實現比較簡單,每個index.vue頁面都請求dict的api,獲取數據再加工顯示即可。3.7.0之後的版本使用了混入,所以複雜了一些。 ...
  • uni-app介紹 官方網頁 uni-app 是一個使用 Vue.js 開發所有前端應用的框架,開發者編寫一套代碼,可發佈到iOS、Android、H5、以及各種小程式(微信/支付寶/百度/頭條/QQ/釘釘)等多個平臺。 即使不跨端,uni-app同時也是更好的小程式開發框架。 具有vue和微信小程 ...
  • SSM · IOC ·AOP 初識Spring : Spring全家桶 Spring Framework 底層框架,設計性框架 Spring Boot 加速開發,提高開發速度 Spring Cloud 分散式開發 Spring Framework系統架構 Spring Framework是Sprin ...
  • 我的博客 在寫python腳本的時候,例如,我寫一個test1.py def test(n): print(n) if __name__ == '__main__': n = 1 test(1) 接下來打開cmd命令視窗,執行命令 python test.py 結果是把1列印出來 這時候就會有同學有 ...
  • 一、CentOS 7.9 安裝 Python-3.9.5 地址 https://www.python.org https://www.python.org/ftp/python/3.9.5 查看當前python版本 python python -V 可以看到執行python,預設是2.7.5 二、安 ...
  • 1、原因 不知不覺已經從事java開發好幾年了,成了人們口中的老司機。但是一直都是恍恍惚惚過來,對於框架底層實現一直都沒有怎麼瞭解過,只是在面試的時候背些面試題。慢慢地發現不能這樣,需要振作,笑~~~~。從這篇開始,記錄自己對於Spring載入過程的源碼查看。 ## 2、開始 1、在Spring載入 ...
  • 1. 用靜態工廠方法代替構造器 說明 在方法內部添加一個靜態方法,用於獲取一個對象,代替構造器的功能; 比如,在boolean包裝Boolean類中,就有valueOf方法可以代替構造方法獲得一個Boolean對象; public static Boolean valueOf(boolean b) ...
  • 前言 看看如何用 python 爬取知乎的公開收藏夾 內容 嘗試 第一個方法 開始的時候用 python ,request 庫進行的網頁請求,在請求你的收藏夾總界面的時候還可以返回信息,這個 url, https://www.zhihu.com/people/xxx/collections,,xxx ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...