




已阅读5页,还剩94页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
R语言 2020 2 6 1 目录 可编辑 第一章网络基础知识及R介绍第二章R语言基础第三章数据的存储与读取第四章R的图形功能第五章R的程序设计第六章综合实例 2 第二章R语言基础 一 一个简短的R会话二 R的基本语法三 R的数据结构 计算机与R语言 3 一 一个简短的R会话 数据的描述 mtcarsmtcar 美国MotorTrend杂志收集的32辆汽车 1973 1974车型 的11项指标 计算机与R语言 4 一 一个简短的R会话 数据的浏览 所有数据 mtcars 前6个观测值 head mtcars 后6个观测值 tail mtcars 计算机与R语言 5 一 一个简短的R会话 数据的编辑方法一 data entry mtcars 方法二 MTcarsfix mtcars 区别 edit 修改结果不存入mtcars中 fix 结果保存至mtcars中 计算机与R语言 6 一 一个简短的R会话 浏览变量信息 例如mpg先激活数据集mtcars attach mtcars mpg 1 21 021 022 821 418 718 114 324 422 819 217 816 417 315 2 15 10 410 414 732 430 433 921 515 515 213 319 227 326 030 4 29 15 819 715 021 4 计算机与R语言 7 二 R语言的基本语法 1 符号1 命令或运算提示符2 续行符3 说明语句字符2 赋值符号1 2 计算机与R语言 8 二 R语言的基本语法 3 基本算术运算1 加号2 减号3 乘号4 除号5 取模6 整除7 乘方 运算优先级别递增 TRUE 1 FALSE 0 计算机与R语言 9 二 R语言的基本语法 4 比较运算符1 大于2 大于等于4 小于等于5 等于6 不等于比较运算得到的结果是逻辑常量TRUE 真 和FALSE 假 计算机与R语言 10 5 逻辑运算符1 x逻辑非当前逻辑值取反运算 2 x y逻辑与如果两个表达式的值均为TRUE 结果才为TRUE 否则为FALSE 3 x y逻辑与若x y为向量只比较第一个元素 二 R语言的基本语法 计算机与R语言 11 二 R语言的基本语法 4 x y逻辑或如果x和y的值均为FALSE 结果才为FALSE 否则为TRUE 向量对每个元素进行比较 5 x y逻辑或若x和y为向量只比较第一个元素 6 xor x y 异或两个逻辑值不相同 则异或结果为真 反之 为假 计算机与R语言 12 二 R语言的基本语法 6 求助符号1 2 help 计算机与R语言 13 7 常量和变量1 常量是其值不变的量 如1234 abc 等数值 字符串和逻辑值等 2 变量是其值可变的量 如x 3 x就是一个变量 当x 4时 x的值被重新赋值为4 变量名由字母 数字和下划线组成 变量的第一个字符为字母 3 显示变量列表 显示现在内存中已创建的变量名 使用ls 函数 4 显示变量值 直接输入变量名或使用print 函数5 清除 将变量从内存中清除 使用rm 计算机与R语言 14 思考题 下列 表示的是变量 A 123B TRUEC InfD abc下列 不可以作为变量名 A 1a2bB a1b2C a bD a b下列 可以作为变量名 A TRUEB InfC TrueD NaN下列赋值语句错误的是 A a 1B a 1C 1 aD A 1 1 计算机与R语言 15 三 R语言的数据结构 1 R的对象与属性R通过一些对象来运行 对象包括数据类型和长度两个内在属性 数据类型是对象元素的基本种类 共有四种 数值型 numeric 字符型 character 逻辑型 logical 复数型 complex 计算机与R语言 16 三 R语言的数据结构 数值型 包括整型 integer 双精度实型 double 对很大的数据则可用指数形式表示例如 1 0 5 0 5 2 1e23 指数形式表示的数值 R可以表示无穷的数值 用Inf和 Inf表示 和 或者用NaN表示不是数字的值 NotaNumber的意思 例如 5 0显示的结果为Inf Inf Inf显示的结果为NaN 计算机与R语言 17 三 R语言的数据结构 字符型 使用 双引号或 单引号作为定界符 例如 abc R语言 123 123 321 abc R语言 123 123 321 如果需要在字符型数据中引用 双引号或 单引号的话 可以在双引号前加上反斜杠 例如 Tomsaid Hello 或者使用 单引号作为定界符例如 Tomsaid Hello Tomsaid Hello 对于单引号也是一样 例如 13 12 13 12 13 12 计算机与R语言 18 三 R语言的数据结构 逻辑型 TRUEFALSE缺失数据用NA NotAvailable的意思 来表示 NA是逻辑常量 计算机与R语言 19 三 R语言的数据结构 数据对象的长度是对象中元素的数目 函数mode 可以得到对象的类型 length 可以得到对象的长度 例如 xmode x 1 numeric length x 1 1 mode a CHINA mode compare TRUE mode z 1i 1 character 2 logical 3 complex 计算机与R语言 20 三 R语言的数据结构 思考题 下列不是数值型数据的是 A 123B 12 3C 123 D 12e2 3下列是字符型数据的是 A TRUEB 1e2C 123 D 5 1i下列字符型定界符用法错误的是 A ab c B ab c C ab c D ab c 下列是逻辑型数据的是 A TrueB FALSEC InfD NaNInf是 型的数据 A 数值型B NA型C 字符型D 逻辑型 计算机与R语言 21 三 R语言的数据结构 统计实例例 一家保险公司收集到由36个投保个人组成的随机样本 得到每个投保人的年龄 周岁 数据如表所示 试确定投保人平均年龄90 的置信区间 计算机与R语言 22 三 R语言的数据结构 注 置信区间是指数据可靠程度的范围 90 指置信水平 求置信水平下的置信区间公式为 即x的均值加减常用置信水平的正态分布的临界 值乘以样本标准差与样本个数开方的差 90 1 64595 1 9699 2 58 计算机与R语言 23 三 R语言的数据结构 x c 23 35 39 27 36 44 36 42 46 43 31 33 42 53 45 54 47 24 34 28 39 36 44 40 39 49 38 34 48 50 34 39 45 48 45 32 m mean x s sd x z1 m 1 645 s sqrt 36 z2 m 1 645 s sqrt 36 z c z1 z2 z 注 新建程序脚本实现 计算机与R语言 24 三 R语言的数据结构 计算机与R语言 25 三 R语言的数据结构 说明 向量是一个变量 是R中最常用 最基本的操作对象 因子是一个分类变量 数组是一个k维的数据表 矩阵是数组的一个特例 其维数k 2 注意 数据或者矩阵中的所有元素都必须是同一种类型的 数据框是由一个或几个向量和 或 因子构成 它们必须是等长的 但是可以是不同的数据类型 ts 表示时间序列数据 它包含一些额外的属性 例如频率和时间 列表可以包含任何类型的对象 包括列表 计算机与R语言 26 三 R语言的数据结构 2 向量的建立1 建立数值型向量数值型向量是统计分析中最常用的向量 可以用下面四个函数建立 1 seq 或 若向量序列具有较为简单的规律 2 rep 若向量序列具有较为复杂的规律 3 sequence 输出从1到参数的向量 4 c 若向量序列没有什么规律 5 scan 通过键盘逐个输入 计算机与R语言 27 三 R语言的数据结构 1 n1 n2 生成从n1到n2步长为1 或 1 的向量例如 1 10 1 12345678910 a1 10 1 1 123456789 1 10 1 1 0123456789 计算机与R语言 28 三 R语言的数据结构 2 seq n1 n2 by n3 length n4 生成从n1到n2的向量 n3为步长 n4为生成元素的数量 seq 1 10 1 12345678910 seq 1 5 by 0 5 1 1 01 52 02 53 03 54 04 55 0 seq 1 10 length 11 1 1 01 92 83 74 65 56 47 38 29 110 0 计算机与R语言 29 三 R语言的数据结构 3 rep n1 n2 生成n1重复n2次的向量 rep 2 3 1 222 rep 1 5 2 1 1234512345 rep 1 5 1 5 1 122333444455555 rep 1 5 rep 2 5 1 1122334455 计算机与R语言 30 三 R语言的数据结构 4 c 直接输出向量 x c 42 7 64 9 length x 5 scan 通过键盘建立向量 scan 1 1368 此行末打一空格后回车5 冒号后直接打回车Read4items 1 1368 计算机与R语言 31 三 R语言的数据结构 6 sequence n1 生成从1开始到n1结束步长为1的向量 sequence 5 1 12345 sequence c 5 5 1 1234512345 sequence c 5 4 1 123451234 计算机与R语言 32 思考题 下列 不能生成向量 1 54321 A 5 1B 6 1 5C seq 1 5 by 1 D 6 sequence 5 下列 不能生成向量 1 1234512345 A rep 1 5 2 B sequence rep 5 2 C 1 10 6D 0 9 5 1 计算机与R语言 33 三 R语言的数据结构 2 数值型向量的运算向量的运算方法如下 1 向量与一个常数的加 减 乘 除为向量的每一个元素与此常数进行加 减 乘 除 2 向量的乘方 与开方 sqrt 为每一个元素的乘方与开方 这对log exp sin cos tan等普通的运算函数同样适用 3 同样长度向量的加 减 乘 除等运算为对应元素进行加 减 乘 除等 4 不同长度向量的加 减 乘 除遵从循环法则 recyclingrule 但要注意这种场合通常要求向量的长度为倍数关系 否则会出现警告 长向量并非是短向量的整数倍 计算机与R语言 34 三 R语言的数据结构 循环法则 同一个表达式中的向量并不需要具有相同的长度 如果它们的长度不同 表达式的结果是一个与表达式中最长向量有相同长度的向量 表达式中较短的向量会根据它的长度被重复使用若干次 不一定是整数次 直到与长度最长的向量相匹配 而常数将被不断重复 计算机与R语言 35 三 R语言的数据结构 sqrt c 2 4 25 1 1 4142142 0000005 000000 1 2 1 4 1 2446 1 4 1 7 1 24686810警告信息 In1 4 1 7 长的对象长度不是短的对象长度的整倍数 例子 5 c 4 7 17 1 91222 5 c 4 7 17 1 203585 c 1 3 17 c 4 7 17 1 3100 c 2 4 5 2 1 41625 计算机与R语言 36 计算机与R语言 37 统计实例两变量线形相关系数的计算 在 1和 1之间波动 其绝对值越接近1 两个变量间的直线相关越密切 例题 trees数据集中树木高度 Height 和木材体积 Volume 的相关关系分析 1 绘制散点图 2 计算相关系数值 计算机与R语言 38 三 R语言的数据结构 3 建立字符型向量1 c 直接输入向量例如 c a b 1 1e2 TRUE 数字 逻辑型数据被强制转换为字符串 1 a b 1 100 TRUE 计算机与R语言 39 2 paste 接受任意字符 并顺次组合连成字符串 在默认情况下 各字符串由一个空格分隔 可以通过sep string把它更改为其他字符 包括空字符串 paste a 1 1 a1 paste c a b 1 1 a1 b1 paste c a b c 1 2 1 a1 b2 paste app le sep 1 apple 计算机与R语言 40 三 R语言的数据结构 例子z c green bluesky 99 paste 1 12 paste A 1 6 sep labs paste c X Y 1 10 sep paste Todayis date 计算机与R语言 41 3 rep 生成重复的向量例如 rep a 3 1 a a a rep c a b 3 1 a b a b a b rep c a b c rep 2 3 1 a a b b c c 计算机与R语言 42 4 建立逻辑型向量1 c 直接输入向量例如 c TRUE FALSE TRUE 1 TRUEFALSETRUE2 rep 生成重复的向量例如 rep c TRUE FALSE 2 1 TRUEFALSETRUEFALSE3 由运算生成例如 1 5 3 1 FALSEFALSEFALSETRUETRUE 计算机与R语言 43 三 R语言的数据结构 5 建立因子型向量一个因子 factor 或因子向量不仅包括分类变量本身 还包括变量不同的可能水平 factor x levels sort unique x na last TRUE labels levels exclude NA ordered is ordered x 说明 这里x可以是数值型或字符型向量 levels用来指定因子的水平 缺省值是向量x中不同的值 labels用来指定水平的名字 exclude表示从向量x中剔除的水平值 ordered是一个逻辑型选项 用来指定因子的水平是否有次序 计算机与R语言 44 三 R语言的数据结构 1 将字符型向量转换为因子 aaa 1 greenbluegreenyellowLevels bluegreenyellow 计算机与R语言 45 三 R语言的数据结构 2 将数值型向量转换成因子 bbb 1 1 2 3 1Levels 123 factor rep 1 5 2 1 1234512345Levels 12345 计算机与R语言 46 三 R语言的数据结构 3 将字符型因子转换为数值型因子 aalevels a a 1 2123Levels 1234 ffff 1 123Levels 123 计算机与R语言 47 三 R语言的数据结构 4 将数值型因子转换为字符型因子 bblevels b b 1 lowmiddlehighlowLevels lowmiddlehigh ffff 1 ABCLevels ABC注 函数levels 用来提取一个因子中可能的水平值 计算机与R语言 48 三 R语言的数据结构 例如 ffff 1 24Levels 2345 levels ff 1 2 3 4 5 计算机与R语言 49 2020 2 6 50 三 R语言的数据结构 5 函数gl 能产生规则的因子序列 用法是gl k n length 产生数据的个数 label 每个水平因子的名字 其中k是水平数 n是每个水平重复的次数 例子 gl 3 5 1 111112222233333Levels 123 计算机与R语言 51 三 R语言的数据结构 gl 3 5 length 30 gl 2 6 label c Male Female gl 2 10 gl 2 1 length 20 gl 2 2 length 20 计算机与R语言 52 计算机与R语言 53 计算机与R语言 54 三 R语言的数据结构 6 向量的下标与子集的提取选择一个向量的子集可以通过在其名称后面追加一个方括号中的索引向量来完成 1 正整数向量 x 1 10 选取了x的前10个元素 假设x的长度不小于10 x c 1 4 取出了向量x的第1和第4个元素 xx 2 7 改变向量的元素的值 计算机与R语言 55 三 R语言的数据结构 2 负整数向量 yfruitnames fruit fruit lunchlunch 计算机与R语言 56 三 R语言的数据结构 4 逻辑向量 xx 10 x x 10 x x10 numeric 0 x x 10 x 计算机与R语言 57 思考题 1 已知a5 D a 53 表达式max c 1 5 7 10 6 8 的结果是 A 1B 6C 7D 94 已知a c 1 5 7 10 则max a 6 8 3 1 的结果是 A 1B 3C 9D 105 已知a c 1 5 7 10 则min a 1 7 的结果是 A 1B 3C 9D 10 计算机与R语言 58 三 R语言的数据结构 3 数组与矩阵的建立数组是一个k 1 维的数据表 矩阵是数组的一个特例 其维数k 2 向量可以看成维数为k 1的数组 而且向量 数组或者矩阵中的所有元素都必须是同一种类型的 1 数组的建立格式 array data dim dimnames 其中data为一向量 其元素用于构建数组 dim为数组的维数向量 dimnames为由各维的名称构成的向量 字符型 缺省为空 计算机与R语言 59 三 R语言的数据结构 例子 AA 1 1 2 3 4 1 14710 2 25811 3 36912 2 1 2 3 4 1 14710 2 25811 3 36912 其中 dim c 3 4 2 的第一个3代表有3行 第二个4代表有4列 第三个2代表有2组 A array 1 8 dim c 2 2 2 会怎样 计算机与R语言 60 三 R语言的数据结构 BB dim A dimnames A A colnames A rownames A dimnames A 计算机与R语言 61 三 R语言的数据结构 例子 AA AA AA 计算机与R语言 62 三 R语言的数据结构 2 矩阵的建立由于矩阵在数学及统计中的特殊性 在R中最为常用的是使用命令matrix 建立矩阵 格式 matrix data NA nrow 1 ncol 1 byrow FALSE dimnames NULL 其中data是一个向量数据 nrow是矩阵的行数 ncol是矩阵的列数 当byrow TRUE时 生成矩阵的数据按行放置 缺省时相当于byrow FALSE 数据按列放置 dimnames是数组维的名字 缺省时为空 计算机与R语言 63 三 R语言的数据结构 例子 XX XX AA注意 循环准则仍然适用于matrix 但是要求数据项的个数等于矩阵的列数的倍数 否则会出现警告 计算机与R语言 64 三 R语言的数据结构 3 数组与矩阵的下标 index 与子集 元素 的提取同向量的下标一样 矩阵与数组的下标可以使用正整数 负整数和逻辑表达式 从而实现子集的提取或修改 计算机与R语言 65 三 R语言的数据结构 XX X 2 2 取出一个元素 X 2 取出一行元素 X 2 取出一列元素 X 1 去掉第1个行 X 2 去掉第2个列 X 3 X is na x X 计算机与R语言 66 思考题 已知矩阵a matrix rep 1 4 4 4 4 若要将a转换成如下矩阵 应使用的命令是 1 2 1 22 2 33A a c 1 4 3 4 B a 3 4 c 1 4 C a 1 4 3 4 D a 3 4 2 3 计算机与R语言 67 三 R语言的数据结构 4 对矩阵的运算 函数 1 矩阵的代数运算转置函数t XX t X 提取对角元diag XX diag X diag 3 生成3行的单位矩阵 一个m n矩阵A的行与列的元素互换而得到的n m矩阵 称为A的转置矩阵 对角线元素都是1的n阶对角矩阵 称为n阶单位矩阵 计算机与R语言 68 三 R语言的数据结构 按行合并rbind 与按列合并cbind m1m2rbind m1 m2 cbind m1 m2 矩阵的逐元乘积 m2 m2 1 2 3 4 1 1122 2 1122 1 2 1 11 2 11 3 22 4 22 1 2 1 44 2 44 1 2 1 11 2 11 1 2 1 22 2 22 m1 m2 rbind m1 m2 cbind m1 m2 m2 m2 计算机与R语言 69 三 R语言的数据结构 矩阵的代数乘积 注 矩阵的代数乘法设分别是m n n p矩阵 则矩阵A与B的乘积是一m p矩阵 计算机与R语言 70 例1 m3m4m3 m4 1 2 1 1119 2 1628例2 rbind m1 m2 cbind m1 m2 1 2 3 4 1 2244 2 2244 3 4488 4 4488 cbind m1 m2 rbind m1 m2 1 2 1 1010 2 1010 计算机与R语言 71 三 R语言的数据结构 方阵的行列式det XX 1 2 1 13 2 24 det X 1 2说明 行列式相当于主对角线 左上至右下 元素的乘积减去副对角线 右上至左下 元素的乘积 计算机与R语言 72 三 R语言的数据结构 其它函数crossprod 交叉乘积函数 eigen 特征根与特征向量函数 qr QR分解函数 solve 逆矩阵函数 例 x matrix 1 4 2 2 y solve x y 计算机与R语言 73 思考题 已知a matrix 1 4 2 2 b matrix 5 8 2 2 若要生成如下矩阵 应设置表达式为 1 2 3 4 1 1256 2 3478A rbind a b B rbind t a b C cbind a b D cbind t a t b 计算机与R语言 74 矩阵的统计学意义多元线性相关分析 两个变量之间的关系为简单相关 三个或三个以上的称为偏相关 复相关 例如 做小鼠麻醉实验时 麻醉药品的用量与小鼠的种类 药品的种类 小鼠的体积密切相关 国家财政收入 国民生产总值 税收 进出口贸易总额 经济活动人口数量之间的关系 X为样本资料矩阵 此时任意两个变量间的相关系数构成的矩阵为 计算机与R语言 75 f matrix c 11 3262 36 241 5 1928 3 550 406 82 11 4638 40 382 5 3782 4 120 415 92 11 5993 45 178 5 7170 5 700 429 03 513 2178 2495 299 456 2197 1667 402 786 45 613 3035 3006 700 542 1962 1778 898 790 48 5 5 byrow T f cor f 计算相关系数 pairs f 矩阵散点图 计算机与R语言 76 三 R语言的数据结构 2 矩阵的统计运算函数1 apply X MARGIN FUN 其中X为参与运算的矩阵 FUN为上面的一个函数或 必须放在引号中 MARGIN 1表示按行计算 MARGIN 2表示按列计算 函数2 sweep X MARGIN STATS FUN 表示从矩阵X中按MATGIN计算STATS 并从X中除去 FUN默认是 计算机与R语言 77 三 R语言的数据结构 例1 求均值 中位数等 mapply m MARGIN 1 FUN mean 求各行的均值 apply m MARGIN 2 FUN mean 求各列的均值 计算机与R语言 78 三 R语言的数据结构 减去中位数row med apply m MARGIN 1 FUN median sweep m MARGIN 1 STATS row med FUN 计算机与R语言 79 三 R语言的数据结构 4 列表与数据框的建立1 列表的建立列表是一种特别的对象集合 它的元素也由序号 下标 区分 但是各元素的类型可以是任意对象 不同元素不必是同一类型 元素本身允许时其它复杂数据类型 比如 列表的一个元素也允许是列表 计算机与R语言 80 三 R语言的数据结构 格式 Lst list name 1 object 1 name m object m 其中name是列表元素的名称 object是列表元素的对象 计算机与R语言 81 三 R语言的数据结构 例子 LstLst name 1 Fred wife 1 Mary no children 1 3 child ages 1 479 计算机与R语言 82 列表元素总可以用 列表名 下标 的格式引用 Lst 2 1 Mary Lst 4 2 1 7 Lst name 1 Fred Lst child age NULL Lst child ages 1 479 Lst name 1 Fred Lst wife 1 Mary 计算机与R语言 83 三 R语言的数据结构 列表的元素可以修改 只要把元素引用赋值即可 Lst nameLst incomelist ABC c list A list B list C 计算机与R语言 84 三 R语言的数据结构 2 数据框的建立统计分析中一个完整的数据集通常是由若干个变量的若干个观测值组成的 在R中称为数据框 观测值的序号 观测值 变量 维数 二维 计算机与R语言 85 三 R语言的数据结构 矩阵 数据框 计算机与R语言 86 三 R语言的数据结构 1 数据框的生成数据框可以用data frame 函数生成 其用法与list 函数相同 各自变量变成数据框的成分 自变量可以命名 称为变量名 直接建立的函数 data frame name 1 object 1 name m object m 间接建立的方法 在txt中存入数据如 使用命令 foo read table file D r foo txt header T treatweightA3 4BNAA5 8 计算机与R语言 87 dfdfNameSexAgeHeightWeight1AliceF1356 584 02BeckaF1365 398 03JamesM1257 383 04JeffreyM1362 584 05JohnM1259 099 5 计算机与R语言 88 三 R语言的数据结构 如果一个列表的各个成分满足数据框成分的要求 它可以用as data frame 函数强制转换为数据框 比如 Lst list Name c Alice Becka James Jeffrey John Sex c F F M M M Age c 13 13 12 13 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司消防安全培训通知课件
- 《红楼梦》阅读指导课件
- 新课标幼儿园解读
- 胃管注意事项与护理规范
- 深化人才发展体制机制改革解读
- 慢性肾功能衰竭患者的护理
- 每季度科室护理质控报告
- 泥石流工作总结
- 2025房屋租赁合同样本 房屋租赁合同范本
- 公司晨会课件
- 2025年环保行业从业者综合素质测试试卷及答案
- 电线、电缆专用生产机械企业ESG实践与创新战略研究报告
- 2025-2030中国边境经济合作区行业市场发展分析及经验案例与投资趋势研究报告
- 血液透析病人饮食管理
- 养老机构膳食服务基本规范
- 机械设计基础 第2章 机构的组成及自由度计算
- 雨季防汛防洪隐患排查制度
- 脚手架临时开口加固方案
- 华为公司考勤管理制度
- 《水利工程白蚁防治技术规程SLT 836-2024》知识培训
- 农村宅基地互换及乡村旅游开发合作合同
评论
0/150
提交评论