首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于R中函数中的变量过滤数据和命名

基于R中函数中的变量过滤数据和命名
EN

Stack Overflow用户
提问于 2018-06-06 06:44:21
回答 1查看 23关注 0票数 0

我正在尝试编写一个函数,它允许我(A)创建一个以函数中的参数命名的data.frame。(B)这个data.frame需要是一个更大的data.frame (这里是df)的子集。最后,我需要能够将函数中的object/data.frame保存为可打印的(等) data.frame

举个例子。

代码语言:javascript
复制
Group <- c("Primary Group","Primary Group","Primary Group","Primary Group","Primary Group","Primary Group","Secondary Group","Secondary Group","Secondary Group","Secondary Group","Secondary Group","Secondary Group","Tertiary Group","Tertiary Group","Tertiary Group","Tertiary Group","Tertiary Group","Tertiary Group")
Day <- c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3)
Type <- c("A","A","A","B","B","B","A","A","A","B","B","B","A","A","A","B","B","B")
Value <- c(7,3,10,3,9,4,0,9,3,10,1,6,3,4,10,2,3,1)
df<-as.data.frame(cbind(Group,Day,Type,Value))
Test_Function <- function(Group_Name, Type_Name){
    paste(Group_Name,Type_Name) <- df[(df$Group == Group_Name] & (df$Type == Type_Name),]
}

理想情况下

代码语言:javascript
复制
Test_Function("Secondary Group","A")

将仅返回名为"Secondary Group A"的已保存的可用data.frame中的第7-9行。

谢谢!任何帮助都是令人惊叹的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-06 13:17:41

您的数据集有一个问题。您的主要组值由两个单独的单词组成。然后,它将不能用于命名一个对象(据我所知)

然后,如果您更改名称,使之成为一个单词(我在下面向您展示,但仅更改示例的第一个单词,我假设您有一个更长的数据集,因此您可能必须在R中执行此操作)

代码语言:javascript
复制
Group <- c("Primary_Group","Primary_Group","Primary_Group","Primary_Group","Primary_Group","Primary_Group","Secondary Group","Secondary Group","Secondary Group","Secondary Group","Secondary Group","Secondary Group","Tertiary Group","Tertiary Group","Tertiary Group","Tertiary Group","Tertiary Group","Tertiary Group")
Day <- c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3)
Type <- c("A","A","A","B","B","B","A","A","A","B","B","B","A","A","A","B","B","B")
Value <- c(7,3,10,3,9,4,0,9,3,10,1,6,3,4,10,2,3,1)
df<-as.data.frame(cbind(Group,Day,Type,Value))

然后,下面的函数将完成此工作:

代码语言:javascript
复制
SelFun <- function(Data, Group,Type){
      df <- Data[Data$Group== Group & Data$Type== Type, ]
      assign(paste(Group,Type,sep = ''), df, envir = parent.frame()) 
}

示例:

代码语言:javascript
复制
SelFun(df, 'Primary_Group', 'A')

将创建一个名为Primary_GroupA的data.frame,它将显示选定的行

代码语言:javascript
复制
> Primary_GroupA
          Group Day Type Value
1 Primary_Group   1    A     7
2 Primary_Group   2    A     3
3 Primary_Group   3    A    10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50709940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档