零基础学R:常用命令总结_part1

本文介绍了R语言的基础操作,包括R和RStudio的下载安装,工作路径设置,变量的创建与查看,数据类型,矩阵操作,数据导入,以及一些基本的统计和图形绘制命令。内容涵盖从环境配置到数据预处理,适合R语言初学者入门学习。
摘要由CSDN通过智能技术生成

1. R或Rstudio下载安装:

   首先安装R,到官网https://cran.r-project.org/; 选择距离你地理位置最近的镜像CRAN mirrors,然后下载对应系统(MAC, WINDOWS,LINUX)的R安装包,像其他软件一样安装即可; 然后到https://www.rstudio.com/; 下载Rstudio,同理安装。


2. 查找工作路径 getwd()

    改变工作路径:方法一:点击“session”-----“设置工作路径”

                               方法二:setwd(“路径”),注意R的文件路径是左斜线。

                               方法三:点击上面的sessions,然后选择一个工作文件夹


3. 输入数据/赋值:

 直接输入x = 11或者x<-11即可生成一个变量x,有一个值为11。

 输入字符型变量需要加引号,即 x="monday"

 注意=号和<- 号是等效的;R的变量名可以包含字母、数字和英文句号;R变量不能以数字或符号开头,中间不能包括-和空格;还有R是区分大小写的。


4. 查看变量: print(x) 或者直接输入x,回车即可查看x的值。


5. 删除变量:

 rm(x) //删除变量x

 rm(list=ls())//删除内存中所有变量,即清空数据库

清空所有数据还有一个简易方法是点击右上角数据窗口上方的小扫帚图标。


6. R可以直接进行数字运算:

可直接输入 11+2, 3*9 ,5/2,2^2等进行计算,但是对变量进行运算时如x+y需要两个变量的长度相等;

R的计算是向量式的,如X=1,2,3; Y=2,3,4。 那么x+y的结果就是3,5,7;

 可以直接对变量进行运算,如x-5;也可以生成新的变量 z = x+y。


7. 数据类型: 

R的四种数据类型,级别和举例如下:

logical/逻辑值(TRUE,FALSE)< integer/长整型(1,2,3)< double/双精度(1.2, 3.5)< character/字符型(中国,男,高中);

合并数据以更高级别的级别为主,例如“2年” 类型为字符型。


R还有一种数据类型为factor,呈现形式类似character,不过后台存储为分类变量,可以直接拿来运算和回归;

例如看到的是小学,初中和高中,实际R存储的是1,2,3。转换命令为as.factor;

读取数据的时候通过增加一个选项:stringasfactors=TRUE/FALSE来选择要不要读成factor类型。


y1 <- c(TRUE, FALSE,TRUE)  //生成一列true,false,true的逻辑值

x1=c(1,3,5,7,9) //生成了一列1.0,3.0,5.0,7.0,9.0的双精度数据

x2=c(1L,3L,5L) //生成了一列1,3,5的长整型数据

z1 <- c("TREE", "APPLE")  //生成两个字符型变量TREE和APPLE

查看数据类型用:typeof(x1)

类型互换: v2 = as.integer(v1)  //v2是v1的长整型形式

类似的还有 as.logical(默认0代表FALSE,1和以上代表TRUE) ;  as.character。


 seq(from=1, to=9, by=2) //生成一列1-9,间隔为2的数据

 req(1:3, times(5)) //生成一列1,2,3,1,2,3共重复5次的数据


8. 提取变量中的具体数值:

 如提取Y变量的第

#include<iostream> #include<ctime> #include<chrono> #include<string> #include<filesystem> #include<fstream> #include<sstream> #include<thread> #include<boost/filesystem.hpp> const uintmax_t MAX_LOGS_SIZE = 10ull * 1024ull * 1024ull * 1024ull; //const uintmax_t MAX_LOGS_SIZE = 10ull; void create_folder(std::string folder_name) { boost::filesystem::create_directory(folder_name); std::string sub_foldername=folder_name+"/logs_ros"; boost::filesystem::create_directory(sub_foldername); } std::string get_current_time() { auto now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now); std::tm parts = *std::localtime(&now_c); char buffer[20]; std::strftime(buffer, sizeof(buffer), "%Y-%m-%d-%H-%M", &parts); return buffer; } void check_logs_size() { std::string logs_path = "/home/sage/logs/"; boost::filesystem::path logs_dir(logs_path); std::uintmax_t total_size = 0; for (const auto& file : boost::filesystem::recursive_directory_iterator(logs_dir)) { if (boost::filesystem::is_regular_file(file)) { total_size += boost::filesystem::file_size(file); } } if (total_size > MAX_LOGS_SIZE) { boost::filesystem::path earliest_dir; std::time_t earliest_time = std::time(nullptr); for (const auto& dir : boost::filesystem::directory_iterator(logs_dir)) { if (boost::filesystem::is_directory(dir)) { std::string dir_name = dir.path().filename().string(); std::tm time_parts = {}; std::istringstream ss(dir_name); std::string part; std::getline(ss, part, '-'); time_parts.tm_year = std::stoi(part) - 1900; std::getline(ss, part, '-'); time_parts.tm_mon = std::stoi(part) - 1; std::getline(ss, part, '-'); time_parts.tm_mday = std::stoi(part); std::getline(ss, part, '-'); time_parts.tm_hour = std::stoi(part); std::getline(ss, part, '-'); time_parts.tm_min = std::stoi(part); std::time_t dir_time = std::mktime(&time_parts); if (dir_time < earliest_time) { earliest_time = dir_time; earliest_dir = dir.path(); } } } if (!earliest_dir.empty()) { boost::filesystem::remove_all(earliest_dir); } } } int main() { std::string logs_path = "/home/sage/logs/"; while (true) { std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now); std::tm parts = *std::localtime(&now_c); if (parts.tm_min % 10 == 0) { std::string folder_name = logs_path + get_current_time(); create_folder(folder_name); } check_logs_size(); std::this_thread::sleep_for(std::chrono::minutes(1)); } return 0; }修改为ros节点
最新发布
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值