RStudio 提供了一个很好的函数 View
(带有大写的 V
)来查看数据,但是使用 R 在大型数据集中获取方向仍然很麻烦。最常见的选项是...
names(df)
str(df)
如果您来自 SPSS,那么 R 在这方面似乎是降级的。我想知道是否有更人性化的选项?我没有找到现成的,所以我想与您分享我的解决方案。
最佳答案
使用 RStudio 的内置函数 View
,可以很容易地为 data.frame
列出一个类似于 SPSS 中的变量列表。此函数使用变量信息创建一个新的 data.frame
并通过 View
显示在 RStudio GUI 中。
# Better variables view
Varlist = function(sia) {
# Init varlist output
varlist = data.frame(row.names = names(sia))
varlist[["comment"]] = NA
varlist[["type"]] = NA
varlist[["values"]] = NA
varlist[["NAs"]] = NA
# Fill with meta information
for (var in names(sia)) {
if (!is.null(comment(sia[[var]]))) {
varlist[[var, "comment"]] = comment(sia[[var]])
}
varlist[[var, "NAs"]] = sum(is.na(sia[[var]]))
if (is.factor(sia[[var]])) {
varlist[[var, "type"]] = "factor"
varlist[[var, "values"]] = paste(levels(sia[[var]]), collapse=", ")
} else if (is.character(sia[[var]])) {
varlist[[var, "type"]] = "character"
} else if (is.logical(sia[[var]])) {
varlist[[var, "type"]] = "logical"
n = sum(!is.na(sia[[var]]))
if (n > 0) {
varlist[[var, "values"]] = paste(round(sum(sia[[var]], na.rm=T) / n * 100), "% TRUE", sep="")
}
} else if (is.numeric(sia[[var]])) {
varlist[[var, "type"]] = typeof(sia[[var]])
n = sum(!is.na(sia[[var]]))
if (n > 0) {
varlist[[var, "values"]] = paste(min(sia[[var]], na.rm=T), "...", max(sia[[var]], na.rm=T))
}
} else {
varlist[[var, "type"]] = typeof(sia[[var]])
}
}
View(varlist)
}
我的建议是将其存储为文件(例如
Varlist.R
),无论您需要什么,只需键入:source("Varlist.R")
Varlist(df)
再次请注意用作函数名称的大写
V
。限制: 使用
data.frame
时,除非再次运行 Varlist(df)
,否则不会更新列表。注意: R 有一个内置选项可以使用
print
查看数据。如果使用纯 R,只需将 View(varlist)
替换为 print(varlist)
。然而,根据屏幕大小,Hmisc::describe()
可能是控制台的更好选择。关于r - RStudio(或R)中是否有像SPSS一样的变量列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40022541/