0
我已經閱讀了兩個.csv文件並做了一些編輯。R中的Sapply函數
a1<-read.csv("2013.csv",header=T, na.strings = c("NULL","PrivacySuppressed"))
a2<-a1[,441,drop=F]
a3<-a1[,-441,drop=F]
a4<-cbind(a1,a2)
a4<-a4[, colSums(is.na(a4)) != nrow(a4)]
mode(a4)
[1] "list"
我需要的A4是一個整數,所以我用sapply
s<-sapply(a4, as.numeric)
mode(s)
[1] "numeric"
然而,問題是,列名消失了。
names(s)
NULL
所有以前的數據都有列名。抱歉,由於有600個變量(600個不同的列名稱),因此無法在此輸入。直到a4之前,我的專欄都有了名字。應用「sapply」後,名稱將顯示「NULL」。當我輸入s時,我看到列的名稱,但它沒有將它們檢測爲列的名稱。請幫忙。
謝謝。
我覺得這是一個問題的計算器更適合。 – 2015-11-19 16:47:15
嘗試'colnames(s)',因爲'sapply()'返回一個矩陣。而'as.integer()'如果你想要整數。 'as.numeric()'不會強制爲整數。但可能你真正想要的是'a4 [] < - lapply(a4,as.integer)'。這將保留數據框架類,允許你使用'names(a4)' –
我試過了lapply函數。小號<-lapply(A4,as.integer)。它確實返回了列名,但是它失去了昏暗(s) - > NULL。 – user3350759