相关疑难解决方法(0)

如何在dplyr中使用或/和子集data.frame

我想用/或和的组合对data.frame进行子集化.这是我使用普通R函数的代码.

df <- expand.grid(list(A = seq(1, 5), B = seq(1, 5), C = seq(1, 5)))
df$value <- seq(1, nrow(df))

df[(df$A == 1 & df$B == 3) |
    (df$A == 3 & df$B == 2),]
Run Code Online (Sandbox Code Playgroud)

如何在dplyr包中使用过滤功能转换它们?谢谢你的任何建议.

r dplyr

20
推荐指数
2
解决办法
4万
查看次数

R中保留的CSV订单

我的数据顺序很重要.如果我将CSV加载到R中read.csv,那么数据帧中行的顺序是否保证与CSV 的顺序相匹配?

如果我将一堆CSV和rbind它们一起加载然后subset用来获取我感兴趣的数据怎么样?

例如:

1.csv

foo,bar
a,123
a,456
c,789
Run Code Online (Sandbox Code Playgroud)

2.csv

foo,bar
d,987
a,999
b,654
a,321
Run Code Online (Sandbox Code Playgroud)

请问以下内容:

data1<-read.csv("1.csv", header=T)
data2<-read.csv("2.csv", header=T)
all_data<-rbind(data1, data2)
filtered<-subset(all_data, foo=="a")
Run Code Online (Sandbox Code Playgroud)

... 总是产生一个filtered:

   foo  bar
1    a  123
2    a  456
3    a  999
4    a  321
Run Code Online (Sandbox Code Playgroud)

...并且此行为是否适用于任意CSV输入和过滤器?

csv r subset dataframe

8
推荐指数
1
解决办法
974
查看次数

找到唯一的行

这看起来很简单,但我无法弄清楚.

鉴于此数据框架

df=data.frame(
  x = c(12,12,165,165,115,148,148,155,155,521),
  y = c(54,54,122,122,215,108,108,655,655,151)  
)


 df
     x   y
1   12  54
2   12  54
3  165 122
4  165 122
5  115 215
6  148 108
7  148 108
8  155 655
9  155 655
10 521 151
Run Code Online (Sandbox Code Playgroud)

现在,我如何获得仅存在一次的行.这是第5行和第10行.行的顺序可以完全是任意的,因此检查"下一行"不是一种选择.我尝试了很多东西,但是我的data.frame没有任何工作,它有大约40k行.

我有一个解决方案在我的data.frame的子集(~1k行)上工作,需要3分钟来处理.因此,我的解决方案需要120分钟的原始data.frame,这是不合适的.有人可以帮忙吗?

r unique duplicates dataframe

2
推荐指数
1
解决办法
61
查看次数

标签 统计

r ×3

dataframe ×2

csv ×1

dplyr ×1

duplicates ×1

subset ×1

unique ×1