2010-08-02 28 views
24

Tôi có tập tin này .csv:Cách tải tệp .csv thành R?

ID,GRADES,GPA,Teacher,State 

3,"C",2,"Teacher3","MA" 

1,"A",4,"Teacher1","California" 

Và những gì tôi muốn làm là đọc trong tập tin bằng cách sử dụng phần mềm thống kê R và đọc bằng Header vào một số loại danh sách hoặc mảng (Tôi mới đến R và đã tìm cách để làm điều này, nhưng cho đến nay đã không có may mắn).

Dưới đây là một số giả về những gì tôi muốn làm:

inputfile=read.csv("C:/somedirectory") 

for eachitem in row1:{ 

add eachitem to list 
} 

Sau đó, tôi muốn để có thể sử dụng những tên gọi trên mỗi cột dọc vì vậy mà tôi có thể thực hiện các phép tính.

Tôi đã được cọ rửa trên google trong một giờ, cố gắng tìm hiểu cách thực hiện điều này nhưng không có nhiều liên quan đến tiêu đề cụ thể.

Cảm ơn sự giúp đỡ của bạn!

+5

Thay vì dành thời gian cọ rửa google, thời gian của bạn sẽ tốt hơn khi đọc tài liệu đi kèm với R. Cụ thể, [phần 'Biến thể trên read.table'] (http://cran.r-project.org /doc/manuals/R-data.html#Variations-on-read_002etable) trong [Nhập dữ liệu R/Xuất khẩu] (http://cran.r-project.org/doc/manuals/R-data.html) và/hoặc '? read.csv'. –

Trả lời

36

Bạn đề cập rằng bạn sẽ gọi cho mỗi cột dọc để bạn có thể thực hiện các phép tính. Tôi cho rằng bạn chỉ muốn kiểm tra từng biến duy nhất. Điều này có thể được thực hiện thông qua những điều sau đây.

df <- read.csv("myRandomFile.csv", header=TRUE) 

df$ID 

df$GRADES 

df$GPA 

Có thể hữu ích khi chỉ định dữ liệu cho biến.

var3 <- df$GPA 
+0

Có, tôi muốn truy cập từng biến, tuy nhiên tôi không phải lúc nào cũng biết nhãn họ sử dụng ... Tôi đã hy vọng lặp qua chúng theo vị trí chứ không phải tên thật. – Brian

+1

str (df) sẽ cung cấp cho bạn tên biến cho mỗi biến trong tập dữ liệu. Nếu bạn muốn biết mức của mỗi biến đơn lẻ, chẳng hạn như GPA, hãy chạy một trong hai thuộc tính (df $ var3) hoặc các cấp (df $ var3) – ATMathew

8

Bạn cần read.csv("C:/somedirectory/some/file.csv") và nói chung nó không đau khi thực sự xem trang trợ giúp bao gồm phần ví dụ của nó ở dưới cùng.

6

Như Dirk đã nói, hàm bạn đang theo sau là 'read.csv' hoặc một trong các biến thể read.table khác. Với dữ liệu mẫu của bạn ở trên, tôi nghĩ rằng bạn sẽ muốn làm một cái gì đó như thế này:

setwd("c:/random/directory") 

df <- read.csv("myRandomFile.csv", header=TRUE) 

Tất cả chúng tôi đã làm ở trên đã được thiết lập thư mục đến nơi tệp .csv của bạn và sau đó đọc .csv vào một dataframe tên là df. Bạn có thể kiểm tra xem các dữ liệu được nạp đúng cách bằng cách kiểm tra cấu trúc của đối tượng với:

str(df) 

Giả sử dữ liệu được nạp đúng cách, bạn có thể nghĩ tiếp tục thực hiện bất kỳ số phương pháp thống kê với các dữ liệu trong khung dữ liệu của bạn. Tôi nghĩ rằng summary(df) sẽ là một nơi tốt để bắt đầu. Học cách sử dụng trợ giúp trong R sẽ vô cùng hữu ích và việc đọc nhanh qua trợ giúp về CRAN sẽ giúp bạn tiết kiệm rất nhiều thời gian trong tương lai: http://cran.r-project.org/

3

Bạn có thể sử dụng

df <- read.csv("filename.csv", header=TRUE) 

# To loop each column 
for (i in 1:ncol(df)) 
    { 
    dosomething(df[,i]) 
    } 
# To loop each row 
for (i in 1:nrow(df)) 
    { 
    dosomething(df[i,]) 
    } 

Ngoài ra, bạn có thể muốn có một cái nhìn vào apply chức năng (loại ?apply hoặc help(apply)) nếu bạn muốn sử dụng các chức năng tương tự trên mỗi hàng/cột

1

Vui lòng kiểm tra này ra nếu nó giúp bạn

df < -read.csv ("F:/test.csv", header = FALSE, nrows = 1) df V1 V2 V3 V4 V5 1 LỚP ID GPA giáo Nhà nước một < -c (df) a [1] $ V1 [1] ID Levels: ID

a [2] $ V2 [1] LỚP Levels: LỚP

a [3] $ V3 [1] GPA Levels: GPA

a [4] $ V4 [1] Thầy Levels: Giáo viên

a [5] $ V5 [1] Nhà nước Levels: Tiểu bang

0

Vì bạn nói rằng bạn muốn truy cập theo vị trí khi dữ liệu của bạn được đọc, bạn nên biết về các chức năng lập chỉ mục/lập chỉ mục của R.

Các đơn giản nhất là

df[row,column] 
#example 
df[1:5,] #rows 1:5, all columns 
df[,5] #all rows, column 5. 

Các phương pháp khác là here. Cá nhân tôi sử dụng gói dplyr để thao tác dữ liệu trực quan (không phải theo vị trí).

Các vấn đề liên quan