我是R的新手 我有一个24MB的CSV文件。在我的MacBook Air上使用OS Yoswmite,4GB RAM将其读入RStudio。 R版本3.1.1(2014-07-10)。查看View(df)的内容是可以的。试图应用过滤器。不要受到任何打击。试图从字符转换为数字。 R在完成铸造的列中用NA替换所有字符!这里发生了什么?似乎R无法读取细胞的内容。编码有什么关系吗? 这就是我所做的事情: 首先是摘要:
R代码:
eiendommer <- read.csv("eiendommer.csv", sep = ";", quote = "", encoding="UTF-8", stringsAsFactors = FALSE)
View(eiendommer)# I can view the content of the csv file
filtereiendommer <- filter(eiendommer, kommune == "0101")# no match
filtereiendom <- eiendommer [eiendommer$kommune == "0101",]#no match
utvalg <- eiendommer[160567:161934,]#manual selection of rows do work utvalgsortert <- arrange(utvalg, desc(jordbruksareal), desc(skogareal))# works
View(utvalgsortert)
##Try to transform columns from character to number.
transformedEiendom <- transform(sortertEiendom, jordbruksareal = as.numeric(jordbruksareal),
skogareal = as.numeric(skogareal) )
#This result in NA where it earlier was characters with lengt 1-3:"646", "18", "2"
要点:
kommune X.gardsnr. X.bruksnr. X.festenr. bruksnavn jordbruksareal
Length:207554 Length:207554 Length:207554 Length:207554 Length:207554 Length:207554
Class :character Class :character Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character Mode :character Mode :character
X.annetareal. skogareal X.fulldyrket. X.overflatedyrket. X.innmarksbeite.
Length:207554 Length:207554 Length:207554 Length:207554 Length:207554
Class :character Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character Mode :character
目:
head(eiendommer)
kommune X.gardsnr. X.bruksnr. X.festenr. bruksnavn jordbruksareal X.annetareal. skogareal X.fulldyrket.
1 "0101" "1" "1" "0" "PRESTEGÅRD" "0" "5" "0" "0"
2 "0101" "1" "6" "0" "MO" "8" "4" "7" "8"
3 "0101" "1" "9" "0" "BERG GÅRD" "415" "16" "39" "415"
4 "0101" "2" "1" "0" "BOBERG" "467" "22" "276" "463"
5 "0101" "4" "1" "0" "LUNDESTAD" "877" "62" "793" "837"
6 "0101" "4" "5" "0" "LEIREN" "74" "14" "165" "74"
答案 0 :(得分:2)
您似乎已经指定了quote = ""
,实际上您应该拥有quote='"'
,或者只有默认值可以使用d <- data.frame(x='a',y='"a"',stringsAsFactors=FALSE)
d
# x y
# 1 a "a"
。
参见下面的示例
print.data.frame
对于常规字符向量,"
不会将其括在{{1}}
答案 1 :(得分:0)
挪威Kommune Nummer将面临的一个挑战是那些以Halden“0101”开头的0。
#Prepare Data
kommune = rep("0101", 6)
jordbruksareal<- c("5","4","16","22","62","14")
skogareal <- c("0","8","415","463","837", "74")
eiendommer <- cbind(kommune, jordbruksareal, skogareal)
eiendommer <- as.data.frame(cbind(kommune, jordbruksareal, skogareal), stringsAsFactors=FALSE)
#Transform into numeric
str(eiendommer) #All is Character
eiendommer$skogareal<-as.numeric(eiendommer$skogareal)
eiendommer$jordbruksareal<-as.numeric(eiendommer$jordbruksareal)
eiendommer$kommune<-as.numeric(eiendommer$kommune)
str(eiendommer) #All is numeric, but losing first zer0
#Make a filter
require(dplyr)
filterA <- filter(eiendommer, eiendommer$jordbruksareal == "4")
filter <- subset(eiendommer, eiendommer$kommune == 101)
#Treat Kommune Numbers
eiendommer$kommune <- formatC(eiendommer$kommune, digits = 0, format = "f", width = 4, flag = 0)
eiendommer$kommune <- sprintf("%04d",eiendommer$kommune)
str(eiendommer)
filter2 <- subset(eiendommer, eiendommer$kommune == "0101")
希望这有点帮助,Ha det bra!
答案 2 :(得分:0)
这导致我在文件中出现问题:
;"BLOMSTERHAGEN\"";
将其更改为:
;"BLOMSTERHAGEN";
修正了问题。不,我可以像这样读取.sv:
eiendommer <- read.csv("eiendommer.csv", sep = ";", encoding="UTF-8", stringsAsFactors = FALSE)
由于