我愚蠢地在R项目中创建了大量新的data_frames,试图解决特定问题而不进行适当的提交。通过所有实用名称和大多数希腊字母表,我现在拥有一个充满data_frame对象的环境,其名称类似于' bob',' might.work','几乎所有& #39 ;.我想使用循环函数 - lapply或其他 - 来返回一些指示符,这些指示符将告诉我有关环境中每个数据框对象的信息。然后我可以根据退货清理/删除。
那么可以使用lapply来访问R项目环境中的所有data_frames吗?像这样的东西?
lapply(environment, function (x){
if(is.dataframe(x)){
dplyr::glimpse(x)
}
}
感谢。
答案 0 :(得分:3)
QUALIFY ROW_NUMBER() OVER(PARTITION BY ID ORDER BY Recd_Dt ASC)=1
函数可以轻松地迭代环境中的对象
import { Component } from '@angular/core';
import { Loginservice } from './services/login.service';
import { FormGroup, FormControl, Validators } from '@angular/forms';
import { Router } from '@angular/router';
@Component({
selector : 'app-login',
templateUrl : 'user-login.html',
styleUrls : ['styles/login-style.css']
})
export class UserLogin{
public userDetail:any[];
public islogin:boolean;
public routers : Router;
constructor(private service:Loginservice){
}
loginform = new FormGroup({
username : new FormControl('',[Validators.required, Validators.minLength(5)]),
password : new FormControl('',[Validators.required, Validators.minLength(5)])
});
get username(){
return this.loginform.get('username');
}
get password(){
return this.loginform.get('password');
}
getStyle(){
return {
'font-size': '11px',
'text-align': 'center'
};
}
authLogin(loginObj){
let username = loginObj.value.username;
let password = loginObj.value.password;
let postdata = {'username':username, 'password':password};
//console.log(postdata);
this.service.validateUser(postdata)
.subscribe(
response => {
this.islogin= response.json().status=='1'?true:false;
//alert(this.islogin);
//console.log(response);
this.routers.navigate(['/register']);
},
error =>{
alert(error+"asdsadsa");
}
);
}
}
答案 1 :(得分:1)
当然可以!
lapply(ls(),function(x){
o = get(x,envir = globalenv())
cat("if"(is.data.frame(o),paste0(x," is a data frame!\n"),"Nope.\n"))
})
ls()
将列出环境中的所有对象名称(默认为全局)。get
值,但指定全局环境(因为此时我们处于功能环境中)cat
,如果它是一个数据框,但你可以用o
对象做任何你想做的事。答案 2 :(得分:0)
以下函数将返回环境data.frame
中继承自类environ
的对象,默认为.GlobalEnv
。
getDataFrames <- function(environ = .GlobalEnv){
l <- ls(name = environ)
res <- NULL
for(i in seq_along(l)){
r <- inherits(get(l[i], envir = environ), "data.frame")
if(r) res <- c(res, l[i])
}
res
}
getDataFrames()