Đầu tiên, lưu ý rằng một matrix
và data.frame
những điều khác nhau trong R. Tôi hãy tưởng tượng bạn có một data.frame
(vì đó là những gì được trả về bởi read.csv()
). data.frame
có các cột được đặt tên (nếu bạn không cung cấp cho chúng, các cột chung được tạo cho bạn).
Bạn có thể đặt một số data.frame
bằng cách cho biết cả hàng nào bạn muốn và/hoặc cột nào bạn muốn. Cách dễ nhất để chỉ định những hàng nào có vectơ lôgíc, thường được xây dựng dựa trên so sánh sử dụng các cột cụ thể của data.frame
. Ví dụ: data[["column values"]] == "15"
sẽ tạo một vectơ logic là TRUE
nếu mục nhập tương ứng trong cột column values
là chuỗi "15" (vì nó nằm trong dấu ngoặc kép, nó là một chuỗi, không phải là số). Bạn có thể thực hiện các tiêu chí lựa chọn phức tạp như bạn muốn (kết hợp các vectơ logic với &
và |
) để chỉ định các hàng bạn muốn. Vector này trở thành đối số đầu tiên trong việc lập chỉ mục.
Danh sách tên cột hoặc số có thể là đối số thứ hai. Nếu một trong hai đối số bị thiếu, tất cả các hàng (hoặc cột) được giả định.
Đưa tất cả điều này với nhau, bạn sẽ có được ví dụ như
data[data[["column values"]] == "15", ]
hoặc sử dụng một bộ dữ liệu thực tế (mtcars
)
mtcars[mtcars$am == 1, ]
mtcars[mtcars$am == 1 & mtcars$hp > 100, "mpg"]
mtcars[mtcars$am == 1 & mtcars$hp > 100, "mpg", drop=FALSE]
mtcars[mtcars$hp > 100, c("mpg", "carb")]
Hãy nhìn vào những gì mỗi người trong số các điều kiện (đối số đầu tiên, ví dụ: mtcars$am == 1 & mtcars$hp > 100
) quay lại để hiểu rõ hơn về cách lập chỉ mục hoạt động.
Nguồn
2011-09-23 21:35:22
cảm ơn cho phản ứng. Trên thực tế tôi muốn có toàn bộ tập hợp con, tôi cũng có nghĩa là với các cột khác. bạn có thể vui lòng chỉ cho tôi cách tôi có thể có kết quả 2 Prod B hay không; 2 ProdC; 2 ProdC trở lại? Trong trường hợp của tôi, tôi muốn lọc hơn một cột như Jack đã cho thấy. Nhưng nó vẫn không hoạt động. bạn có thấy lỗi không? Cảm ơn! – Bob
Đăng chỉnh sửa. Bạn có thể chỉ định bất kỳ kết hợp nào của các thừa số trong một vectơ của các tên cột được trích dẫn hoặc không được trích dẫn. 'subset' cũng sẽ bỏ qua tất cả những trận đấu NA gây phiền nhiễu mà tôi ghét và những người khác đánh giá cao. –
Tôi đã thử tập con (dữ liệu, V1 == "stochastic", V6 == "độc lập"). Nhưng nó không hoạt động. V1 và V6 là hai tiêu đề cột. Kết quả trở lại là> tập hợp con (dữ liệu, V1 == "stochastic", V6 == "độc lập") khung dữ liệu với 0 cột và 196 hàng Tại sao tôi không nhận được toàn bộ dữ liệu ở dạng ban đầu của nó mà chỉ có các hàng nơi v1 và v6 hài lòng? – Bob