Trong Stata, lệnh lookfor
cung cấp một cách nhanh chóng để tìm kiếm các biến trong tập dữ liệu (và nó tìm kiếm cả tên biến và nhãn). Vì vậy, lookfor education
nhanh chóng tìm thấy các biến liên quan đến giáo dục. Có chức năng tắt tương đương trong R không?Có cách nào nhanh chóng để tìm kiếm các biến trong R?
Trả lời
Bạn có thể chỉ cần grep
data.frame cho thông tin cần thiết. Sau đó, bạn sẽ nhận được nhiều thông tin hơn chỉ đơn giản là danh sách các tên của các biến mà ai đó được kết hợp. Bạn cũng có thể sử dụng cụm từ thông dụng, do đó tăng cường khả năng tìm kiếm của bạn. Dưới đây là ví dụ về chức năng thực hiện những gì bạn muốn (chỉ hoạt động với data.frame):
lookfor <-
function (pattern, data, ...)
{
l <- lapply(data, function(x, ...) grep(pattern, x, ...))
res <- rep(FALSE, ncol(data))
res[grep(pattern, names(data), ...)] <- TRUE
res <- sapply(l, length) > 0 | res
names(res) <- names(data)
names(res)[res]
}
Đầu tiên tôi grep mỗi cột, sau đó tôi grep tên cột. Sau đó, tôi chỉ giữ thông tin cho dù grep phù hợp với bất cứ điều gì và ghi lại nó cho mỗi cột riêng biệt. Thay vì ...
, bạn có thể chuyển bất kỳ đối số nào đến grep
. Nếu bạn bỏ qua nó, hàm này sẽ thực hiện một kết hợp chuỗi đơn giản.
Dưới đây là một ví dụ:
> dt<- data.frame(y=1:10,x=letters[1:10],a=rnorm(10))
> lookfor("a",dt)
[1] "x" "a"
Làm thế nào về vấn đề này như một oneliner mà tôi chạy vào lúc bắt đầu của một phiên:
lkf <- function(d,p) names(d)[grep(p,names(d))]
nơi d
là tên của bạn và data.frame p
là mẫu.
Vì vậy
d <- data.frame(a=letters[1:10],b=1:10,c=month.name[1:10])
lkf(d,'c')
# [1] "c"
Và đây là một phiên bản mà không yêu cầu bạn phải trích dẫn tên biến
lookfor <- function(string_to_find, data){
# Extract the arguments and force conversion to string
pars <- as.list(match.call()[-1])
data.name <- as.character(pars$data)
var <- as.character(pars$string_to_find)
# Regular expression search through names
result <- names(data)[grep(var, names(data))]
if(length(result) == 0) {
warning(paste(var, "not found in", data.name))
return(NULL)
}
else {
return(result)
}
}
Nếu bạn chỉ cần tìm kiếm thông qua danh sách các biến để tìm một người bạn đang tìm kiếm thì có thể sử dụng hàm hoàn thành mã trong RStudio (v0.99 trở đi). Đơn giản chỉ cần bắt đầu gõ và bạn sẽ nhận được một danh sách các trận đấu có thể. Vì vậy, trong trường hợp của bạn, gõ education$
và danh sách các biến chứa trong khung dữ liệu sẽ xuất hiện. Di chuyển qua các tùy chọn này và chọn cái bạn muốn.
- 1. Tìm kiếm mẫu VIM để tìm kiếm nhanh chóng
- 2. Tìm bảng (tìm kiếm) trong thiết kế DBML nhanh chóng?
- 3. tính tích phân kép trong R nhanh chóng
- 4. Làm cách nào để tìm kiếm nhanh trong NERDTree?
- 5. Trong PHP, cách nhanh chóng để tìm kiếm một mảng cho các giá trị chứa chuỗi con là gì?
- 6. Làm cách nào để tải dữ liệu nhanh chóng vào R?
- 7. Có cách nào nhanh chóng để tạo bộ không?
- 8. Làm thế nào nhanh chóng có thể 'tìm kiếm tối đa trong một mảng' có thể nhận được?
- 9. Chuỗi nhanh trong Danh sách Tìm kiếm
- 10. Làm cách nào để reindex ElasticSearch nhanh chóng?
- 11. Làm cách nào để nhanh chóng tìm kiếm tất cả các tệp tiêu đề được bao gồm trong một dự án cho một hàm hoặc macro cụ thể?
- 12. Tìm kiếm chuỗi nhanh?
- 13. Có cách nào nhanh chóng để tìm nếu (n-1)! chia hết cho n?
- 14. Một cách nhanh chóng để xác định xem một Componet có được tìm thấy trong JPanel
- 15. Có cách nào nhanh chóng tìm thấy kết thúc bị thiếu trong Ruby không?
- 16. Zotonic- nơi có thể nhanh chóng được tìm thấy
- 17. Cách nhanh chóng để tìm các bản sao trên cột được lập chỉ mục trong mongodb
- 18. Có cách nào để phát hiện tìm kiếm trên các tìm kiếm trang trong javascript
- 19. Tôi làm cách nào để tìm thấy thẻ html đóng nhanh chóng trong vim?
- 20. Tôi có thể tìm kiếm/thay thế nhiều tệp .txt một cách nhanh chóng từ Thiết bị đầu cuối không?
- 21. Cách tìm kiếm mẫu có thể hoạt động nhanh hơn?
- 22. Làm cách nào để tìm kiếm "\ n" mà không có "\ r" trước trong vim?
- 23. Cách nhanh chóng để so sánh inputstreams
- 24. Tìm kiếm MSDN nhanh trong Firefox
- 25. Có cách nào nhanh chóng để giảm thụt lề của nhiều dòng trong Python không?
- 26. Cách nhanh chóng để xóa một dòng trong netBeans
- 27. Tìm kiếm hàm băm nhanh
- 28. Cách nhanh chóng để chọn khuôn mặt cubmap trong GLSL
- 29. Cách làm cho Tomcat nhanh chóng tải các thay đổi để làm cho phát triển web Java nhanh chóng
- 30. Làm thế nào để nhanh chóng stdClass tại chỗ
Bỏ phiếu để di chuyển sang stackoverflow nhưng bạn có thể kết hợp lệnh 'which()' với lệnh 'names()' nếu bạn đang làm việc với khung dữ liệu hoặc 'colnames()' nếu bạn đang làm việc với ma trận – Macro