R语言——数据与运算

  1. 练习基本运算:

v <- c (2,4,6,9)
t <- c (1,4,7,9)
print (v>t)
print (v < t )
print (v == t )
print (v!=t )
print (v>=t )
print (v<=t )

v <- c (3,1,TRUE,2+3i)
t <- c (4,1,FALSE,2+3i)
print (v&t)
print (v|t)
print (!v)

v <- c (3,0,TRUE,2+2i)
t <- c (1,3,TRUE,2+3i)
print (v&&t)

v <- c (0,0,TRUE,2+2i)
t <- c (0,3,TRUE,2+3i)
print (v||t)

v <- c (0,0,TRUE,2+2i)
t <- c (0,3,TRUE,2+3i)
print (v||t)

  1. 使用转义符,用cat ()在控制台中打印出下列格式的输出

To have a \ you need \\

This is a really

really really

long string

  1. 创建一个对象,并进行数据类型的转换、判别操作,步骤如下:
  1. 创建一个对象x,内含元素为序列:1,3,5,6,8
  2. 判断对象x是否为数值型数据
  3. 将对象转换为逻辑型数据,记为x1。将对象转换为字符型数据,记为x2
  4. 判断x1是否为逻辑型数据.
  1. 分别输出as.character(c(T,0,FALSE))和as.character(c(T,"TRUR",FALSE))的值,并描述两个值出现区别的原因.
  2. 构建一个数据框:

(1)将下列表格中的数据用数据框表述出来,命名为staff_table

|----|-------|-----|-----|
| 序号 | name | ID | age |
| 1 | jack | 001 | 12 |
| 2 | rose | 002 | 13 |
| 3 | jane | 003 | 14 |
| 4 | james | 006 | NA |

(2)提取staff_table的员工rose的数据

(3)提取rose、jane的ID、age数据

(4)运用数据框提取员工的年龄数据,计算均值

  1. 练习基本运算:

代码:

R 复制代码
v<-c(2,4,6,9)
t<-c(1,4,7,9)
print(v>t)
print(v<t)
print(v==t)
print(v!=t)
print(v>=t)
print(v<=t)

v<-c(3,1,TRUE,2+3i)
t<-c(4,1,FALSE,2+3i)
print(v&t)
print(v|t)
print(!v)

v<-c(3,0,TRUE,2+2i)
t<-c(1,3,TRUE,2+3i)
print(v[1]&&t[1])

v<-c(0,0,TRUE,2+2i)
t<-c(0,3,TRUE,2+3i)
print(v[1]||t[1])

v<-c(0,0,TRUE,2+2i)
t<-c(0,3,TRUE,2+3i)
print(v[2]||t[2])

结果:

  1. 使用转义符,用cat ()在控制台中打印出下列格式的输出

代码:

R 复制代码
cat("To have a \\ you need \\\\\n") 
cat("This is a really\nreally really")

截图:

  1. 创建一个对象,并进行数据类型的转换、判别操作,步骤如下:
  1. 创建一个对象x,内含元素为序列:1,3,5,6,8

代码:

R 复制代码
x <- c(1, 3, 5, 6, 8)

截图:

  1. 判断对象x是否为数值型数据

代码:

R 复制代码
is_numeric <- is.numeric(x)

cat("x 是数值型数据吗?", is_numeric, "\n")

截图:

  1. 将对象转换为逻辑型数据,记为x1。将对象转换为字符型数据,记为x2

代码:

R 复制代码
# 将对象转换为逻辑型数据,记为 x1
x1 <- as.logical(x)

# 将对象转换为字符型数据,记为 x2
x2 <- as.character(x)

截图:

  1. 判断x1是否为逻辑型数据

代码:

R 复制代码
# 判断 x1 是否为逻辑型数据

is_logical <- is.logical(x1)

cat("x1 是否为逻辑型数据?", is_logical, "\n")

截图:

  1. 分别输出as.character(c(T,0,FALSE))和as.character(c(T,"TRUR",FALSE))的值,并描述两个值出现区别的原因.

代码:

R 复制代码
# 输出 as.character(c(T, 0, FALSE)) 的值

cat("as.character(c(T, 0, FALSE)) 的值:", as.character(c(T, 0, FALSE)), "\n")



# 输出 as.character(c(T, "TRUR", FALSE)) 的值

cat("as.character(c(T, \"TRUR\", FALSE)) 的值:", as.character(c(T, "TRUR", FALSE)), "\n")

截图:

原因:

as.character(c(T, 0, FALSE)) 的值为 "TRUE" "0" "FALSE",而 as.character(c(T, "TRUR", FALSE)) 的值为 "TRUE" "TRUR" "FALSE"。这里的区别在于第二个向量中包含了一个字符型元素 "TRUR",而不是整数型元素。

在 R 语言中,逻辑值 TRUE 和 FALSE 会被转换为字符型 "TRUE" 和 "FALSE",而数字 0 会被解释为逻辑值 FALSE,最终被转换为字符型 "FALSE"。因此,在第一个向量中整数型的 0 被转换为字符型 "0",而在第二个向量中字符型的 "TRUR" 保持不变。

  1. 构建一个数据框:

(1)将下列表格中的数据用数据框表述出来,命名为staff_table

|----|-------|-----|-----|
| 序号 | name | ID | age |
| 1 | jack | 001 | 12 |
| 2 | rose | 002 | 13 |
| 3 | jane | 003 | 14 |
| 4 | james | 006 | NA |

代码:

R 复制代码
# 创建数据框

staff_table <- data.frame(

  序号 = c(1, 2, 3, 4),

  name = c("jack", "rose", "jane", "james"),

  ID = c("001", "002", "003", "006"),

  age = c(12, 13, 14, NA)

)



# 显示数据框

print(staff_table)

截图:

(2)提取staff_table的员工rose的数据

代码:

R 复制代码
# 提取员工"rose"的数据

rose_data <- staff_table[staff_table$name == "rose", ]



# 显示提取的数据

print(rose_data)

截图:

(3)提取rose、jane的ID、age数据

代码:

R 复制代码
# 提取rose、jane的ID、age数据

rose_jane_data <- staff_table[staff_table$name %in% c("rose", "jane"), c("name", "ID", "age")]



# 显示提取的数据

print(rose_jane_data)

截图:

(4)运用数据框提取员工的年龄数据,计算均值

代码:

R 复制代码
# 提取员工的年龄数据

age_data <- staff_table$age



# 计算均值

mean_age <- mean(age_data, na.rm = TRUE)



# 显示均值

print(mean_age)

截图:

相关推荐
云和数据.ChenGuang18 小时前
Python 3.14 与 PyCharm 2025.2.1 的调试器(PyDev)存在兼容性问题
开发语言·python·pycharm
Mr.Jessy18 小时前
Web APIs 学习第六天:BOM、location对象与本地存储
开发语言·前端·javascript·学习·web api·bom
LIZhang201619 小时前
基于ffmpeg8.0录制mp4文件
开发语言·c++
_OP_CHEN19 小时前
C++进阶:(九)深度剖析unordered_map 与 unordered_set容器
开发语言·c++·stl容器·哈希表·哈希桶·unordered_map·unordered_set
七夜zippoe19 小时前
Java并发编程基石:深入理解JMM(Java内存模型)与Happens-Before规则
java·开发语言·spring·jmm·happens-before
Mark Studio19 小时前
QT linux 静态编译问题记录
开发语言·qt
无敌最俊朗@20 小时前
C++-Qt-音视频-基础问题01
开发语言·c++
kyle~20 小时前
C++---万能指针 void* (不绑定具体数据类型,能指向任意类型的内存地址)
开发语言·c++
MediaTea20 小时前
Python 第三方库:TensorFlow(深度学习框架)
开发语言·人工智能·python·深度学习·tensorflow
vortex520 小时前
Bash Glob 通配符详细指南:从 POSIX 标准到高级用法
开发语言·bash