将一个数据帧的内容传递到r

时间:2018-09-07 14:24:48

标签: r dataframe if-statement case-when

我目前正在学习R,以便在我的大学写论文。   

在我的项目中,我有一个包含2列6001行的数据框。在第一列中,我具有从10000,9999,9998到4000的数字,在第二列中,我具有数字元素。在我看来,我想做一些非常简单的事情。我想创建第二个数据框,其大小为原始数据框的一半,其中包含第一列的偶数和第二列的数字。   

我尝试了一些未按计划进行的脚本。我的第一个脚本是:ifelse(tkk[1] %% 2 == 0, tkal<-tkk, 0)。然后我尝试了一个: tkal <-case_when((tkk[1]%%2 ==0)~ tkk)。但是我的两个脚本都没有运行,或者没有我想要的结果。

你们有没有解决方案或更好的主意,所以我可以解决这个简单的任务?

提前谢谢

3 个答案:

答案 0 :(得分:3)

如果tkk是您的数据帧,则可以执行以下操作

tkk[tkk[,1]%%2==0,]

这将返回数据帧的所有列,其中第一列具有偶数。

我使用的代码:

tkk=data.frame(1:20,rep(1,20))
tkk[tkk[,1]%%2==0,]
#2      2          1
#4      4          1
#6      6          1
#8      8          1
#10    10          1
#12    12          1
#14    14          1
#16    16          1
#18    18          1
#20    20          1

答案 1 :(得分:2)

尝试tkk2 <- dplyr::filter(tkk, first_column %% 2 == 0)

请注意,由于R在data.frame中的列中采用唯一类型,因此第二列不需要任何条件。

答案 2 :(得分:0)

您正在寻找子集。如果您有NA值,建议您使用which()

tkal <- tkk[which(tkk[[1]] %% 2 ==0),]