从数据框的特定列中选择奇数行

时间:2019-06-06 07:46:17

标签: r dataframe subset

我有一个很大的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

1 个答案:

答案 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,以免丢失尺寸并强制转换为向量)