天天看點

R語言初學筆記3

得空,那邊R在處理些資料,估計得要一天左右時間,不得不噴下R的循環for語句,慢!

言歸正傳,下面說下我這段時間遇到的問題,解決方法。

1.R語言添加列名

data是你需要修改列名的資料,若是多個列名,則需要c()

2.R語言 修改單個列名

有時候,可能隻需要修改單個列名,如果采用上面這種方法則太費事,可以使用:

names(data)[col_num] <- "m"

,意思是将data資料的第col_num個列名修改為m

3.填補缺失值

mdd[is.na(mdd)]<- 0

,将mdd資料中所有為NA的值替換為0,NA是一個邏輯值,不可使用==作為判斷依據

4.R語言求平均數(每行,每列)

例如:

data:

1 1 4

3 4 7

,data 為2*3的資料,求每列和,你可以使用

sum(data[,i])

,求行

sum(data[i,])

,其中i表示數字.

你也可以使用apply家族函數

求每行的和

求每列的和

其中1表示行,2表示列,比sum簡便多了吧,sum可以改成mean等函數,具體的可以help(“function”)一下,其中function為你需要查找的函數

5.R語言 查找滿足條件的資料

目前為止,我采用的是which語句

which(mdd$user_id==)
           

意思是查找mdd資料中user_id等于14581的資料,這裡傳回的是一組行編号

1 2 5 6 7 8 等等,你可以采取嵌套的方法直接擷取每行的資料

mdd[which(mdd$user_id==),]
           

這裡就是得到user_id為14581的所有資料了

6.R語言 随機抽取樣本

mydata[sample[,],]
           

意思為 從mydata 5400個樣本資料中,随機抽取10個樣本

7.R語言 求交集 并集 等

intersect(u1,u2) 求u1u2交集
union(u1,u2)求u1 u2并集
unique(u1) 求u1中不重複的元素 例如:1 1 2 3 3 3 會得到1 2 3
           

8.R語言 傳回多個結果

t = array()
for(i in :){

  t[i]=i
  a = list(t)

}
return (a)
           

此處傳回a這個list,你也可以采用unlist t(轉置) 等操作轉換到你需要的格式

9.R語言 排序

例如:

d1 <- c(,,,,,)
d1[order(d1)] 
[1] 2 3 4 5 6 8 
           

當然,你也可以使用sort(d1) 可以達到同樣的效果,而且sort函數還有一個好處,就是傳回下标

sort(d1,index.return =TRUE)

10.R語言 去除科學計數法 保留小數位

options(scipen=3)
    options(digits=3)
           

11.R語言 中文亂碼問題

Rstudio中文亂碼 file–reopen with encoding 再選擇utf-8就ok了

"Not enough finite obervations" is an error returned by cor.test under certain circumstances. If you take a look a the cor.test.default source code, you'll see :
OK <- complete.cases(x, y)
x <- x[OK]
y <- y[OK]
n <- length(x)
cor.test removes NA values from you vectors [...]
if (method = "pearson") {
    if (n < L) 
        stop("not enough finite obervations")
[...]
else {
    if (n<)
        stop("not enough finite obervations")
If your vectors do not contain enough non-NA values (less than ), the function will return the error.
Make all of the columns in your dataframe contain enough non-NA values before you use cor.test.

I hope this will be useful.
           

這是我遇到的一個問題,查找相關資料得到問題所在:向量中包含過多NA,非NA數量少于3個,如果你出現此類情況,請先檢查一下向量。

若有問題,請指出,謝謝!
           

繼續閱讀