匯入 csv檔
假設有一學生成績資料 score.csv,用R語言匯入 csv檔:
score = read.csv("~/prog/r/score.csv", header=T, sep=",")
輸入 score 查看內容,共有5筆學生資料
增加一個欄位方式:
加上地理科成績,欄位名稱 S.Geography
score$S.Geography = c(78, 67, 89, 77, 86, 90)
計算並增加 Sum. 和 Avg. 欄位存放每個學生的成績總分和平均
sum_field = c()
avg_field = c()
for ( i in 1:nrow(score)) { #nrow(score)取得score資料行數
summary = sum(score[i, 3:5])
sum_field[i] = summary
avg = summary / 3
avg_field[i] = round(avg, 2) #浮點數取到小數點2位
}
score$Sum. <- sum_field
score$Avg. <- avg_field
或是用 apply 會更簡單
score$Sum. <- apply(score[, 3:5], 1, sum)
score$Avg. <- round(apply(score[, 3:5], 1, mean), 2)
刪除特定行的資料
例如要刪除學生 Chang 或 Lin 的資料
可以用 grep 找出符合條件的資料行
score[grep("Chang|Lin", score$Name), ]
要刪除只要前面加上"-"號即可
score[-grep("Chang|Lin", score$Name), ]
排序方式
依照學生成績總分排序(升序)
score[order(score$Sum), ]
依照學生成績總分排序(降序),只要加個 "-" 號就可以
score[order(-score$Sum), ]
最大值最小值
找出成績最好的資料和最差的資料:
score[which.max(score$Avg.[]), ]
score[which.min(score$Avg.[]), ]
沒有留言:
張貼留言