要有引号,单引号双引号都行
三种取值:TRUE(T) FALSE(F) NA(不知道)
可以简写但是不能小写!
原则:尽可能保留更多信息以便于转换回去;
字符型保留信息最多,逻辑型最少;
class()
:判断数据类型/数据结构
is
族函数:判断某个数据是否是某个类型的数据,返回T或F(注:形式大于内容)
is.numeric()
is.logical()
is.character()
as
族函数:将某个数据转换为某个类型(注:能转换的才能转换)
as.numeric()
as.logical()
as.character()
-处理报错是分析数据的常态
要么该赋值没赋值(该起名字没起名字),要么该加引号没加引号
函数名字打错了-拼写错误/大小写错误(或者以后会遇到的该装的包还没装)
① 按 tab 键补全
② 光标放到命令提示符 > 后,按↑翻出之前运行的命令直接编辑
-比较运算的结果是逻辑值
-多个逻辑条件的连接用 与& 或| 非!
一个向量内部只能有一种数据类型,可以有重复值
重复值允许,不同的数据类型不允许!
约等于表格:列有要求(同一列只允许同一种数据类型);不是文件(可以导出来成为一个文件)
数据框单独拿出的一列是向量,视为一个整体
-以下代码基本来自小洁老师所给的R script,打开即得;
-打开如果是乱码有以下解决办法:File -- Reopen with encoding -- (Choose encoding)UTF-8 -- OK
#(1)用 c() 结合到一起
c(2,5,6,2,9)
c("a","f","md","b")
#当 c() 内有不同数据类型时,会自动转化成同一种,且转换优先级原则为尽量保留多的信息;
#(2)连续的数字用冒号“:”
1:5
#(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm()
rep("x",times = 3)
seq(from = 3,to = 21,by = 3)
rnorm(n = 3)
#(4)通过组合,产生更为复杂的向量。
paste0(rep("x",times = 3),1:3)
-变量名称的选择原则:尽量避免和函数名冲突;尽量不涉及特殊字符,不涉及中文字符;尽量字母在前数字在后
#(1)赋值给一个变量名
x = c(1,3,5,1) #随意的写法
x
x <- c(1,3,5,1) #规范的赋值符号 Alt+减号
x
#赋值+输出一起实现
x <- c(1,3,5,1);x
(x <- c(1,3,5,1))
#(2)简单数学计算
x+1
log(x)
sqrt(x)
#(3)根据某条件进行判断,生成逻辑型向量
x>3
x==3
#(4)初级统计
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
length(x) #长度/函数个数,函数思想
unique(x) #去重复(从左往右看过去,第一次出现不算重复,第二次或多次出现的算重复)
duplicated(x) #对应元素是否重复
table(x) #重复值统计
sort(x) #默认从小到大排序——R语言里的默认思想
sort(x,decreasing = F)
sort(x,decreasing = T)
x = c(1,3,5,1)
y = c(3,2,5,6)
#(1)比较运算,生成等长的逻辑向量
x == y
y == x
#以上两行返回结果完全一致,不做区分
#(2)数学计算
x + y
#(3)连接
paste(x,y,sep=",")
x>10
#paste与paste0的区别
paste(x,y)
paste0(x,y)
paste(x,y,sep = "")
paste(x,y,sep = ",")
#区别在于paste0默认连接方式为无缝连接,没有sep这个参数;paste默认连接方式为空格,有sep这个参数;
#当两个向量长度不一致
x = c(1,3,5,6,2)
y = c(3,2,5)
x == y # 啊!warning!
#循环补齐:等位运算且长度不同时发生循环补齐
#利用循环补齐简化代码——完美答案很短,但不好直观理解:
paste0(rep("x",3),1:3)
paste0("x",1:3)
#(4)交集、并集、差集
intersect(x,y) #默认会去重复!
union(x,y) #默认会去重复!
setdiff(x,y) #x减y
setdiff(y,x) #y减x
#x与y的差集和y与x的差集是不一样的!
x %in% y #看x的每个元素在y中存在吗
y %in% x #看y的每个元素在x中存在吗
#x == y和x %in% y的区别:前者是x和y对应位置一对一比较,是等位运算;后者是x每一个元素都要和y里所有的元素比一遍;
x <- 8:12
#根据逻辑值取子集
x[x == 10]
x[x < 12]
x[x %in% c(9,13)]
#根据位置取子集
x[4]
x[2:4]
x[c(1,5)]
x[-4]
x[-(2:4)]
(1)将13个数作为向量赋值给x
(2)x>7 #判断,之后会返还13个TRUE/FAUSE
(3)[]将TRUE对应的值挑选出来,FALSE丢弃
没有赋值就没有发生过!
x
#改一个元素
x[4] <- 40
x
#改多个元素
x[c(1,5)] <- c(80,20)
x
k1 = rnorm(12);k1
k2 = rep(c("a","b","c","d"),each = 3);k2
plot(k1) # plot()默认以下标作为横坐标,以输入的向量为纵坐标进行画图
boxplot(k1~k2) #以k1作为横坐标,以k2作为纵坐标画图
下列两个代码哪个正确?
answer:A(达到了把小于0.05的取出来并排序的目的)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。