data <- read.csv("C:\\data\\RBasic\\deck.csv") #路徑請自行修改
March 6, 2017
data <- read.csv("C:\\data\\RBasic\\deck.csv") #路徑請自行修改
data[c(4,17,30,43), ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
data[data$數值 == 10, ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
data$數值 == 10
## [1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE ## [12] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE ## [23] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE ## [34] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE ## [45] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
data$數值 == 10
## [1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE ## [12] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE ## [23] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE ## [34] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE ## [45] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
可將這個向量(邏輯測試結果)儲存起來
test <- data$數值 == 10 test
## [1] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE ## [12] FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE ## [23] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE ## [34] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE ## [45] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
data[test, ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
data[data$數值 == 10, ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
在需要用比較複雜的邏輯處理時,可用此方法讓程式變得較好閱讀
data[c(4,17,30,43), c(2,3)]
## 花色 數值 ## 4 黑桃 10 ## 17 梅花 10 ## 30 方塊 10 ## 43 紅心 10
比較一下差異
data[c(4,17,30,43), ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
data[c(3:6), c(2:3)]
## 花色 數值 ## 3 黑桃 11 ## 4 黑桃 10 ## 5 黑桃 9 ## 6 黑桃 8
比較一下差異
data[c(3:6), c(2,3)]
## 花色 數值 ## 3 黑桃 11 ## 4 黑桃 10 ## 5 黑桃 9 ## 6 黑桃 8
data[data$數值 == 10, c("花色","數值")]
## 花色 數值 ## 4 黑桃 10 ## 17 梅花 10 ## 30 方塊 10 ## 43 紅心 10
比較一下差異
data[data$數值 == 10, ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
data1 <- data
與選取資料相同:
先明確描述想替換的值
再用新的值覆蓋
data1[c(4,17,30,43), c("數值")]
## [1] 10 10 10 10
data1[c(4,17,30,43), c("數值")] <- c(14,14,14,14)
data[c(4,17,30,43), ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
data1[c(4,17,30,43), ]
## 牌面 花色 數值 ## 4 ten 黑桃 14 ## 17 ten 梅花 14 ## 30 ten 方塊 14 ## 43 ten 紅心 14
data2 <- data #製作一個複本以便觀察 data2$new <- c(1) #增加新的變數 data2 #觀察增加新變數後的資料
## 牌面 花色 數值 new ## 1 king 黑桃 13 1 ## 2 queen 黑桃 12 1 ## 3 jack 黑桃 11 1 ## 4 ten 黑桃 10 1 ## 5 nine 黑桃 9 1 ## 6 eight 黑桃 8 1 ## 7 seven 黑桃 7 1 ## 8 six 黑桃 6 1 ## 9 five 黑桃 5 1 ## 10 four 黑桃 4 1 ## 11 three 黑桃 3 1 ## 12 two 黑桃 2 1 ## 13 ace 黑桃 1 1 ## 14 king 梅花 13 1 ## 15 queen 梅花 12 1 ## 16 jack 梅花 11 1 ## 17 ten 梅花 10 1 ## 18 nine 梅花 9 1 ## 19 eight 梅花 8 1 ## 20 seven 梅花 7 1 ## 21 six 梅花 6 1 ## 22 five 梅花 5 1 ## 23 four 梅花 4 1 ## 24 three 梅花 3 1 ## 25 two 梅花 2 1 ## 26 ace 梅花 1 1 ## 27 king 方塊 13 1 ## 28 queen 方塊 12 1 ## 29 jack 方塊 11 1 ## 30 ten 方塊 10 1 ## 31 nine 方塊 9 1 ## 32 eight 方塊 8 1 ## 33 seven 方塊 7 1 ## 34 six 方塊 6 1 ## 35 five 方塊 5 1 ## 36 four 方塊 4 1 ## 37 three 方塊 3 1 ## 38 two 方塊 2 1 ## 39 ace 方塊 1 1 ## 40 king 紅心 13 1 ## 41 queen 紅心 12 1 ## 42 jack 紅心 11 1 ## 43 ten 紅心 10 1 ## 44 nine 紅心 9 1 ## 45 eight 紅心 8 1 ## 46 seven 紅心 7 1 ## 47 six 紅心 6 1 ## 48 five 紅心 5 1 ## 49 four 紅心 4 1 ## 50 three 紅心 3 1 ## 51 two 紅心 2 1 ## 52 ace 紅心 1 1
data3 <- data #製作一個複本以便觀察 data3$數值 <- NULL #刪除原有變數 data3 #觀察刪除原有變數後的資料
## 牌面 花色 ## 1 king 黑桃 ## 2 queen 黑桃 ## 3 jack 黑桃 ## 4 ten 黑桃 ## 5 nine 黑桃 ## 6 eight 黑桃 ## 7 seven 黑桃 ## 8 six 黑桃 ## 9 five 黑桃 ## 10 four 黑桃 ## 11 three 黑桃 ## 12 two 黑桃 ## 13 ace 黑桃 ## 14 king 梅花 ## 15 queen 梅花 ## 16 jack 梅花 ## 17 ten 梅花 ## 18 nine 梅花 ## 19 eight 梅花 ## 20 seven 梅花 ## 21 six 梅花 ## 22 five 梅花 ## 23 four 梅花 ## 24 three 梅花 ## 25 two 梅花 ## 26 ace 梅花 ## 27 king 方塊 ## 28 queen 方塊 ## 29 jack 方塊 ## 30 ten 方塊 ## 31 nine 方塊 ## 32 eight 方塊 ## 33 seven 方塊 ## 34 six 方塊 ## 35 five 方塊 ## 36 four 方塊 ## 37 three 方塊 ## 38 two 方塊 ## 39 ace 方塊 ## 40 king 紅心 ## 41 queen 紅心 ## 42 jack 紅心 ## 43 ten 紅心 ## 44 nine 紅心 ## 45 eight 紅心 ## 46 seven 紅心 ## 47 six 紅心 ## 48 five 紅心 ## 49 four 紅心 ## 50 three 紅心 ## 51 two 紅心 ## 52 ace 紅心
1.整數索引
data[c(4,17,30,43), ]
## 牌面 花色 數值 ## 4 ten 黑桃 10 ## 17 ten 梅花 10 ## 30 ten 方塊 10 ## 43 ten 紅心 10
2.邏輯索引
3.名稱索引
data[data$數值 == 10, c("花色","數值")]
## 花色 數值 ## 4 黑桃 10 ## 17 梅花 10 ## 30 方塊 10 ## 43 紅心 10
data1[c(4,17,30,43), c("數值")] <- c(14,14,14,14)
data2$new <- c(1)
data3$數值 <- NULL