最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

R語(yǔ)言 如何獲取指定位置的數(shù)據(jù)

 更新時(shí)間:2021年04月02日 11:43:08   作者:hukun1995  
這篇文章主要介紹了R語(yǔ)言 如何獲取指定位置的數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

R語(yǔ)言-獲取指定位置的數(shù)據(jù)

R中采用數(shù)據(jù)對(duì)象+[ , ]的方式獲取對(duì)應(yīng)位置的數(shù)據(jù),根據(jù)填入索引參數(shù)的不同類(lèi)型可具體分為:

正整數(shù)、負(fù)整數(shù)、零、空格、邏輯值、名稱(chēng)

> matrix
   [,1] [,2] [,3] [,4] [,5]
[1,]  1  5  9  13  17
[2,]  2  6  10  14  18
[3,]  3  7  11  15  19
[4,]  4  8  12  16  20

1.正整數(shù)索引

因?yàn)镽中的起始位置為1,與一般的編程語(yǔ)言不同,所以這類(lèi)索引最為常見(jiàn)。

需要注意的是,如果索引中存在重復(fù)值,R會(huì)繼續(xù)執(zhí)行進(jìn)而重復(fù)提取部分值,如:

> matrix[c(1,1),1:5]
   [,1] [,2] [,3] [,4] [,5]
[1,]  1  5  9  13  17
[2,]  1  5  9  13  17

2.負(fù)整數(shù)索引

使用負(fù)整數(shù)索引與正整數(shù)正好相反,R會(huì)返回不包含在負(fù)整數(shù)對(duì)應(yīng)位置的元素,當(dāng)需要選取的行或列很多時(shí),用這個(gè)索引會(huì)更快捷。

需要注意,正整數(shù)索引與負(fù)整數(shù)索引可以同時(shí)出現(xiàn)在不同索引位置,但不能同時(shí)出現(xiàn)在同一位置,否則將報(bào)錯(cuò),具體如下:

> matrix[c(-1,-1),1]
[1] 2 3 4
> matrix[c(-1,1),1]
Error in matrix[c(-1, 1), 1] : only 0's may be mixed with negative subscripts

3.零索引

零索引的存在說(shuō)實(shí)話(huà)并沒(méi)有什么意義,很有可能是設(shè)計(jì)師為了防止很多程序員無(wú)法避開(kāi)從0開(kāi)始計(jì)數(shù)而經(jīng)常導(dǎo)致error的一種保護(hù)措施而已。使用情況如下:

> matrix[1,0]
integer(0)
> matrix[0,0]
<0 x 0 matrix>

4.空格索引

空格表示提取該索引位置所對(duì)應(yīng)的所有維度,但不寫(xiě)空格效果也一樣,具體如下:

> matrix[1,]
[1] 1 5 9 13 17
> matrix[1, ]
[1] 1 5 9 13 17

5.邏輯值索引

當(dāng)提供的索引位置是一個(gè)包含TRUE和FALSE邏輯值的向量,那么R會(huì)匹配出索引值為T(mén)RUE的列,并取出相應(yīng)元素。

使用這種方法,需要向量長(zhǎng)度與索引位置的維度相同,否則就達(dá)不到需要的效果,具體如下:

> matrix[c(T,F,F,F),]
[1] 1 5 9 13 17

這種方式看似笨重,但在特殊情況下作用十分明顯

6.名稱(chēng)索引

當(dāng)被索引的對(duì)象有名稱(chēng)屬性,就可以采用名稱(chēng)作為索引提取相關(guān)元素,這是提取列的常用方法,因?yàn)榱锌倳?huì)有名稱(chēng),具體如下:

> colnames(matrix)<-c("a","b","c","d","e")
> matrix[,"b"]
[1] 5 6 7 8

補(bǔ)充:R語(yǔ)言獲取特定時(shí)間段的數(shù)據(jù)

獲取特定時(shí)間段的表格數(shù)據(jù)方法:

1. 方法一:正則表達(dá)式

data <- read.csv('F:/data.csv')
date <- as.Date(data$Date)
#獲取2018-3-1到2018-3-10之間的第3-5列數(shù)據(jù)
subT <- date[(format(date,format = "%Y")=="2018"&as.numeric(format(date,format =       
   "%m"))=="3" &as.numeric(format(date,format = "%d"))>=1&as.numeric(format(date,format 
   = "%d"))<=10),3:5]
#對(duì)2018-3-1到2018-3-10之間第3-5列的數(shù)據(jù)進(jìn)行按列求平均值
mean <- apply(subT,2, mean)

2. 方法二:

date1 <- as.POSIXct(paste("2018-3-1","08:00:00"))
date2 <- as.POSIXct(paste("2018-3-1","17:00:00"))
int <- interval(date1, date2)
#獲取2018-3-1 08:00:00到2018-3-1 17:00:00之間的第3-5列數(shù)據(jù)
subT <- data[ymd_hms(data$Date) %within% int,3:5]

注意:

1. within判斷數(shù)據(jù)是否在該時(shí)間段之內(nèi),其中包括起始時(shí)間,不包括末尾時(shí)間。

2.paste0(num_year[y],'_',m,'_1') 實(shí)現(xiàn)字符串的合并,其中m,num_year[y]為變量。

paste拼接時(shí)有空格,paste0無(wú)空格

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

最新評(píng)論

巨鹿县| 中方县| 三河市| 富源县| 云阳县| 咸阳市| 周至县| 穆棱市| 泰州市| 玉山县| 固始县| 许昌县| 理塘县| 广元市| 普定县| 武宣县| 蒲城县| 普宁市| 颍上县| 文水县| 永嘉县| 苗栗县| 施秉县| 外汇| 蒲江县| 阳城县| 定日县| 澄迈县| 科技| 普陀区| 明星| 正蓝旗| 搜索| 广宁县| 长治县| 嘉禾县| 阜平县| 五台县| 高邮市| 安乡县| 宁明县|