R_Basic
1. 数据类型
双精度浮点数 双精度浮点数 (double) 是 R 中十进制数的默认类型 double 类型的数字可以参与数学运算 字符串 字符串 (string) 是一组表示文本的字符 R 中字符串使用双引号串联起来 逻辑类型 由 TRUE 和 FALSE 表示的真值或假值 可以使用 & 和 | 将逻辑值组合起来,从而执行基本的逻辑运算
2. 缺失值
R 中使用 NA 来表示缺失值 R 对任何使用缺失值的运算输出 NA
3. 向量
R 是一种向量语言(vector language) 向量是一个数值列表,R 所做的一切都是对向量进行运算 向量的定义 c(…)
4. 函数
函数是对值进行特定操作的代码块 R 和 RStudio 中,可以使用 ?函数名 的方式获取该函数的完整帮助文档
5. 随机抽样
6. 自定义函数
5 + 2
5 - 2
5 / 2
5 * 2
5 ^ 2
5 - - 2
5e+2
5e-2
"hello"
TRUE & FALSE
TRUE | FALSE
NA + 2
x <- c( 1 , 2 , 3 )
x + 3
y <- c( 2 , 2 , 2 )
x + y
x * y
z <- c( x, y)
length( c( 1 , 2 , 3 ) )
length( "dog" )
length( c( "dog" , "cat" ) )
nchar( "dog" )
nchar( c( "dog" , "cat" ) )
sum( c( 1 , 2 , 3 ) )
sum( c( 1 , 2 ) , 3 )
sum( 1 , 2 , 3 )
sum( c( 1 , NA , 3 ) )
sum( c( 1 , NA , 3 ) , na.rm = TRUE )
cumsum( c( 1 , 1 , 1 , 1 , 1 ) )
cumsum( c( 2 , 10 , 3 ) )
diff( c( 1 , 2 , 3 , 4 , 5 ) )
c( 1 : 5 )
c( 5 : 1 )
seq( 1 , 1.1 , 0.05 )
seq( 0 , 15 , 5 )
seq( 1 , 2 , 0.3 )
seq( 10 , 5 , - 1 )
ifelse( 2 < 3 , "small" , "big" )
x <- c( 1 , 2 , 3 )
ifelse( x < 3 , "small" , "big" )
y <- c( 2 , 1 , 6 )
ifelse( x > y, x, y)
ifelse( runif( 5 ) , "A" , "B" )
runif( 5 , 0 , 2 )
rnorm( 5 )
rnorm( 4 , mean = 2 , sd = 10 )
mood <- c( "sad" , "happy" , "upset" )
sample( mood, 2 )
sample( mood, 10 , replace = TRUE )
set.seed( 1337 )
ifelse( runif( 5 ) < 2 , "A" , "B" )
set.seed( 1337 )
ifelse( runif( 5 ) < 2 , "A" , "B" )
double_then_cube <- function ( val) { ( val * 2 ) ^ 3
}
double_then_cube( 8 )
double_then_cube( c( 1 , 2 , 3 ) )
sum_then_square <- function ( x, y) { ( x + y) ^ 2
}
sum_then_square( 2 , 3 )
sum_then_square( c( 1 , 2 ) , c( 5 , 3 ) )
xs <- c( 1 , 2 , 3 , 4 , 5 )
ys <- c( 2 , 3 , 2 , 4 , 6 )
plot( xs, ys, type = "l" , main = "示例图" , xlab = "x轴" , ylab = "y轴"
)
plot( xs, ys, type = "b" , main = "示例图2" , xlab = "x轴" , ylab = "y轴"
)
plot( xs, ys, type = "p" , main = "示例图" , xlab = "x轴" , ylab = "y轴"
)
lines( xs, ys)
t.vals <- seq( 1 , 20 , 1 )
price.vals <- cumsum( rnorm( length( t.vals) , mean = 5 , sd = 10 ) )
plot( t.vals, price.vals, main = "模拟股票价格" , xlab = "时间" , ylab = "价格" )
lines( t.vals, price.vals)