小编use*_*761的帖子

具有唯一案例的子集,基于多个列

我想将数据框子集化为仅包含具有三列唯一组合的行.我的情况类似于问题中提供的情况,但我还想保留数据中的其他列.这是我的例子:

> df
  v1  v2  v3   v4  v5
1  7   1   A  100  98 
2  7   2   A   98  97
3  8   1   C   NA  80
4  8   1   C   78  75
5  8   1   C   50  62
6  9   3   C   75  75
Run Code Online (Sandbox Code Playgroud)

请求的输出将是这样的,我正在寻找仅基于v1,v2和v3的独特案例:

> df.new
  v1  v2  v3   v4  v5
1  7   1   A  100  98 
2  7   2   A   98  97
3  8   1   C   NA  80
6  9   3   C   75  75
Run Code Online (Sandbox Code Playgroud)

如果我可以恢复非常独特的行,那也很棒:

> …
Run Code Online (Sandbox Code Playgroud)

r unique subset

39
推荐指数
3
解决办法
6万
查看次数

R:查找缺少的列,如果缺少则添加到数据框

我想编写一些代码可以获取给定的数据框,检查是否缺少任何列,如果是,则添加填充0或NA的缺失列.这是我得到的:

> df
   x1 x2 x4
1   0  1  3
2   3  1  3
3   1  2  1

> nameslist <- c("x1","x2","x3","x4")
> miss.names <- !nameslist %in% colnames(df)
> holder <- rbind(nameslist,miss.names)
> miss.cols <- subset(holder[1,], holder[2,] == "TRUE")
Run Code Online (Sandbox Code Playgroud)

除此之外,我无法弄清楚如何在没有硬编码的情况下添加丢失的列("x3").理想情况下,我希望新的完整数据框也具有与nameslist相同的列.

有任何想法吗?我当前的代码可以忽略,没问题.

r

7
推荐指数
1
解决办法
6404
查看次数

从read.csv获取文件名(file.choose())

我想知道是否有可能从read.csv调用中嵌入的file.choose()命令中抽出文件名.现在我分两步执行此操作,但用户必须选择相同的文件两次才能提取数据(csv)和文件名,以便在我运行的函数中使用.我想这样做,所以用户只需要选择一次文件,然后我就可以同时使用数据和文件名.

这是我正在使用的:

data <- read.csv(file.choose(), skip=1))
name <- basename(file.choose())
Run Code Online (Sandbox Code Playgroud)

我正在运行OS X,如果这有帮助,因为我认为file.choose()具有不同的行为,具体取决于操作系统.提前致谢.

r

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

生成细胞计数随机的数据,但行总和始终相同

我需要创建一堆假数据集,其中两个变量的总和与我的实际数据相同,但每个变量的计数是随机的.这是设置:

>df
    X.1  X.2
1   145   30
2    55   73   
Run Code Online (Sandbox Code Playgroud)

第一行总和为175,第二行为128.我正在寻找的是一种生成数据帧(或一堆数据帧)的方法,如下所示:

>df.2
    X.1  X.2
1   100   75
2    90   38
Run Code Online (Sandbox Code Playgroud)

在df.2中,单元格计数已更改,但行仍然汇总到同一个表.实际数据有数百行,但如果有帮助则只有两个变量.我试图找出如何做到这一点,sample()但没有运气.有什么建议?

谢谢!

r

5
推荐指数
2
解决办法
263
查看次数

从列表中选择最终项目

我有一个名单,想提取每个人的姓氏.复杂的是,有些条目有中间名,有些有昵称等.这是我的例子,基于这个问题,但改变格式以反映我的情况:

df <- c("bob smith","mary ann d. jane","jose chung","michael mike marx","charlie m. ivan")
Run Code Online (Sandbox Code Playgroud)

要获得名字,我使用以下内容:

firstnames <- sapply(strsplit(df, " "), '[',1)
Run Code Online (Sandbox Code Playgroud)

然而,有没有办法让元素处于"最终"位置?提前致谢.

r

3
推荐指数
1
解决办法
124
查看次数

标签 统计

r ×5

subset ×1

unique ×1