约束 R 中数据框中列的 类
constraining on classes of column in data frame in R
所以,我正在尝试编写一个以数据框作为输入的函数,以检查数据框的列是否仅包含整数、字符(不是因子)和数字向量。在那种情况下,我想 return 值 TRUE
。如果它包含其他内容,我想 return FALSE
。
例如:
df1 <- data.frame( a = 1:4, b = c("x","y", "z","w"), c = 8:11, stringsAsFactors = FALSE)
df2 <- data.frame(a = 2:5, b = c("m", "n", "o", "p"),c = 11:14, stringsAsFactors = TRUE)
在这种情况下,函数应该 return TRUE
输入 df1
因为它有整数和字符类型的列。但是对于 df2
,我想 return FALSE
因为它包含因子列 b
.
有人可以帮忙吗?
由于整数也是数字,您可以使用条件
is.numeric(x) | is.character(x)
这是一个函数:
numOrChar <- function(df) {
f <- function(x) is.numeric(x) | is.character(x)
all(vapply(df, f, logical(1L)))
}
numOrChar(df1)
# [1] TRUE
numOrChar(df2)
# [1] FALSE
所以,我正在尝试编写一个以数据框作为输入的函数,以检查数据框的列是否仅包含整数、字符(不是因子)和数字向量。在那种情况下,我想 return 值 TRUE
。如果它包含其他内容,我想 return FALSE
。
例如:
df1 <- data.frame( a = 1:4, b = c("x","y", "z","w"), c = 8:11, stringsAsFactors = FALSE)
df2 <- data.frame(a = 2:5, b = c("m", "n", "o", "p"),c = 11:14, stringsAsFactors = TRUE)
在这种情况下,函数应该 return TRUE
输入 df1
因为它有整数和字符类型的列。但是对于 df2
,我想 return FALSE
因为它包含因子列 b
.
有人可以帮忙吗?
由于整数也是数字,您可以使用条件
is.numeric(x) | is.character(x)
这是一个函数:
numOrChar <- function(df) {
f <- function(x) is.numeric(x) | is.character(x)
all(vapply(df, f, logical(1L)))
}
numOrChar(df1)
# [1] TRUE
numOrChar(df2)
# [1] FALSE