我想将数据框子集化为仅包含具有三列唯一组合的行.我的情况类似于此问题中提供的情况,但我还想保留数据中的其他列.这是我的例子:
> 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) 我想编写一些代码可以获取给定的数据框,检查是否缺少任何列,如果是,则添加填充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相同的列.
有任何想法吗?我当前的代码可以忽略,没问题.
我想知道是否有可能从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()具有不同的行为,具体取决于操作系统.提前致谢.
我需要创建一堆假数据集,其中两个变量的总和与我的实际数据相同,但每个变量的计数是随机的.这是设置:
>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()但没有运气.有什么建议?
谢谢!
我有一个名单,想提取每个人的姓氏.复杂的是,有些条目有中间名,有些有昵称等.这是我的例子,基于这个问题,但改变格式以反映我的情况:
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)
然而,有没有办法让元素处于"最终"位置?提前致谢.