RStudio(或 R)中是否有像 SPSS 中那样的变量列表?
Is there a variable listing in RStudio (or R) like in SPSS?
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()
可能是控制台的更好选择。
RStudio 提供了一个很好的函数 View
(大写 V
)来查看数据,但使用 R 在大型数据集中获取方向仍然很麻烦。最常见的选项是...
names(df)
str(df)
如果您来自 SPSS,R 似乎在这方面降级了。我想知道是否有更人性化的选择?我没有找到现成的,所以我想和你分享我的解决方案。
使用 RStudio 的内置函数 View
,很容易为 data.frame
提供类似于 SPSS 中的变量列表。此函数使用变量信息创建一个新的 data.frame
并通过 View
.
# 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()
可能是控制台的更好选择。