好的,找不到更好的标题
假设我有my_dataframe:
Name Value1 Value2
AA 10 20
BB 15 30
如果我这样做:
nrow(my_dataframe[my_dataframe$Value2>20,]
结果我得到'1'
我想创建my_second_dataframe,例如只有列'Value2':
my_second_dataframe<- my_dataframe[,'Value2', drop=FALSE]
让我查看一下:
class(my_second_dataframe)
[1] "data.frame"
class(my_second_dataframe$Value2)
[1] "numeric"
然后:
nrow(my_second_dataframe[my_second_dataframe$Value2>20,]
NULL
????? 这将是一个函数的一部分,我想在其中隔离一个选择的列,并根据阈值数量获取该列的行数。我做错了什么?
由于
答案 0 :(得分:2)
基于?Extract
drop:对于矩阵和数组。如果为TRUE,则结果强制转换为 可能的最小尺寸(参见示例)。这只适用于 提取元素,而不是替换。请进一步了解 的信息。
此外,默认情况下,drop = TRUE
[
x[i, j, ... , drop = TRUE]
因此,我们需要指定drop = FALSE
以避免在只有一个列或行时强制转换到可能的最低维度。
在OP的例子中
my_second_dataframe[my_second_dataframe$Value2>20,, drop=FALSE]