【发布时间】:2019-06-06 07:46:17
【问题描述】:
我有一个很大的df,其中有一个名为Amount 的特定numeric 列。
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 最好。
【问题讨论】:
-
您正在选择一个向量。所以,你不需要
,df$Amount[c(FALSE, TRUE)]如果选择了行,那么df[c(FALSE, TRUE),, drop = FALSE] -
df$amount 不是
data.frame而是一个向量,因此[的行为不同(不需要逗号):df$Amount[c(FALSE, TRUE)]