我有一个很大的df
,其中有一个名为numeric
的特定Amount
列。
df = data.frame(Amount = c(as.numeric(1:14)), stringsAsFactors = FALSE)
我想选择奇数行。到目前为止,我已经尝试使用以下语法,但是总是收到以下错误消息:
df$Amount[c(FALSE, TRUE),]
df $ Amount [c(FALSE,TRUE),]中的错误:维数错误
seq_len(ncol(df$Amount)) %% 2
seq_len(ncol(df $ Amount))中的错误: 参数必须可强制为非负整数 另外:警告消息: 在seq_len(ncol(df $ Amount))中: 'length.out'参数使用的第一个元素
odd = seq(1,14,1)
df$Amount[odd,1]
P20 $ Journal.Amount [even,1]中的错误:维数不正确
P20$Journal.Amount[seq(2,length(14), 2),]
seq.default(2,length(14),2)中的错误:'by'参数中的错误登录
我的问题是:是否可以直接执行此操作?我尝试使用先前发布的问题的解决方案,但到目前为止,我一直收到这些错误消息。
最好BaseR
。
答案 0 :(得分:1)
在存在暗淡属性时使用row/column
索引。 vector
没有。
is.vector(df$Amount)
如果我们提取向量,则只需使用行索引
df$Amount[c(FALSE, TRUE)]
如果我们想对数据集的行进行子集化,
df[c(FALSE, TRUE), 'Amount', drop = FALSE]
在上面的代码中,我们指定行索引(i
),'j'作为列索引或列名,drop
(?Extract
-默认为{ {1}}代表drop = TRUE
。因此,我们需要指定data.frame
,以免丢失尺寸并强制转换为向量)