在Stata中,lookfor
命令提供了一種在數據集中搜索變量的快速方法(並且它搜索變量名稱和標籤)。因此lookfor education
可以快速找到與教育相關的變量。 R中是否有等價的快捷方式?有沒有一種快速的方法來搜索R中的變量?
6
A
回答
6
您可以簡單地使用grep
data.frame來獲取必要的信息。然後,您將獲得更多的信息,而不僅僅是與某人匹配的變量名稱列表。您還可以使用正則表達式,從而增強您的搜索功能。這裏是一個函數的例子你想要做什麼(只有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]
}
首先,我用grep每一列,然後我用grep列名。然後我只保存grep是否匹配任何信息並分別記錄每列的信息。您可以將任何參數傳遞給grep
而不是...
。如果你忽略它,這個函數會做一個簡單的字符串匹配。
下面是一個例子:
> dt<- data.frame(y=1:10,x=letters[1:10],a=rnorm(10))
> lookfor("a",dt)
[1] "x" "a"
2
這個怎麼樣的,我在會議開始運行oneliner:
lkf <- function(d,p) names(d)[grep(p,names(d))]
其中d
是你data.frame的名稱, p
是這種模式。
所以
d <- data.frame(a=letters[1:10],b=1:10,c=month.name[1:10])
lkf(d,'c')
# [1] "c"
而這裏的,不需要你引用變量名
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)
}
}
0
如果你只需要搜索雖然變量列表,找到一個版本,正在尋找,那麼可以使用RStudio中的代碼補全功能(v0.99以後)。只需開始輸入,你會得到一個可能的比賽列表。因此,在您的案例中鍵入education$
,將出現數據框中包含的變量列表。滾動這些並選擇你想要的。
相關問題
- 1. 有沒有一種快速的方式來適應變量的功能?
- 2. 有沒有一種快速解鎖Emacs中的鍵的方法?
- 3. 有沒有一種方法來評估vba中的變量?
- 4. 有沒有一種快速有效的方法來在Javascript中乘數組?
- 5. 有沒有一種快速的方法來減少Python中多行的縮進?
- 6. 有沒有一種快速的方法來刪除VS 2010中的大括號?
- 7. 有沒有一種快速的方法來從點或分支來源「git diff」?
- 8. 有沒有一種快速的方法來檢查一個變量是否屬於一個集合?
- 9. 有沒有一種快速的方法來刪除在C#中使用語句?
- 10. Object.isArray()很慢,有沒有一種快速的方法來做到這一點?
- 11. 有沒有一種快速找到約束所在的方法?
- 12. 有沒有一種方法來確定在Java方法中使用的變量?
- 13. 有沒有一種快速的方法來恢復MATLAB的PATH環境變量設置?
- 14. 有沒有一種方法來grep或解析一個變量
- 15. 有沒有一種簡單的方法來跟蹤Firefox變量的JavaScript變量?
- 16. 有沒有一種通用的方法來搜索帶有Shiro的LDAP組?
- 17. 有沒有一種快速的方法來獲得在Python中相當於ls()的R?
- 18. 有沒有一種快速的方法來重建拼音文件名單?
- 19. 在Emacs中有沒有一種快速方法來進行文字換行?
- 20. 有沒有一種方法來搜索參數的內部的整個陣列?
- 21. 有沒有辦法在Postgres中進行快速子串搜索
- 22. 有沒有一種方法可以在Magento中進行搜索?
- 23. 有沒有一種快速的方法來獲得數據框中列的各種「分類」的均值?
- 24. 有沒有一種方法來加載小鬍子partials自動快速+鞏固
- 25. 有沒有一種快速設置DataGridView的所有列不可見的方法?
- 26. 有沒有一種方便的方法來填充R中的曲線?
- 27. 有沒有一種方法來檢測頁面上的查找搜索javascript
- 28. 快速的方式來搜索arrayList
- 29. 有沒有一種方法來合成Objective-C中類變量的setter/getters?
- 30. 有沒有一種更新SQL中很多記錄的快速方法?
投票遷移到stackoverflow,但如果你正在使用數據框,你可以將'which()'命令與'names()'命令結合使用,如果你正在使用'colnames()'與矩陣 – Macro