R语言 对R数据框中的每个值应用函数
在R编程语言中,要对数据框中的每个整数类型的值应用一个函数,我们可以使用 dplyr 包中的 lapply 函数。如果数值的数据类型是字符串,那么我们可以使用 粘贴() 和 lapply。 让我们在一个例子的帮助下理解这个问题。
使用中的数据集
编号 | A | B | C | D |
---|---|---|---|---|
1. | 1 | 8 | 21 | 4 |
2. | 9 | 2 | 0 | 6 |
3. | 6 | 3 | 14 | 3 |
4. | 5 | 6 | 5 | 7 |
5. | 9 | 4 | 3 | 1 |
6. | 6 | 3 | 2 | 3 |
在对数据帧的每个值应用value*7+1
之后
预期的结果
编号 | A | B | C | D |
---|---|---|---|---|
1. | 8 | 57 | 148 | 29 |
2. | 64 | 15 | 1 | 43 |
3. | 43 | 22 | 99 | 22 |
4. | 36 | 43 | 36 | 50 |
5. | 64 | 29 | 22 | 8 |
6. | 43 | 22 | 15 | 22 |
方法1:使用lapply函数
lapply 是apply家族的一个函数。通过使用lapply,我们可以避免for循环,因为for循环比lapply慢。lapply比普通的循环快,因为它不会扰乱你的工作环境。它以列表形式返回输出。lapply中的’l’表示列表。
语法
lapply(X, FUN, …)
这里,X可以是一个向量列表或数据框。而FUN以一个你希望应用于数据框的函数作为参数。
方法
- 创建一个假数据集。
- 创建一个你想应用于数据框中每个值的自定义函数。
- 在lapply的帮助下,将这个自定义函数应用到数据框中的每个值。
- 显示结果
例子
输出:
使用lapply
方法2:使用粘贴和应用功能 。
paste() 将一个R对象作为参数,并将其转换为字符,然后用另一个字符串粘贴回来,也就是说,它将参数转换为字符串,并将它们连接起来。
语法
paste (..., sep = " ")
我们的R对象将被转换为字符串,代替”…”,sep=” “代表一个字符串来分隔术语。
方法
- 创建一个假数据集。
- 应用自定义函数,将打印 “Hello” ,然后在数据框中显示数值
- 显示结果
例子
输出
使用粘贴和应用
方法3:使用purrr
purrr 是一个函数式编程工具包。它带有许多有用的函数,如 map。 map()函数遍历向量的所有条目,并以列表形式返回输出 。 它允许我们在代码中替换for循环,使其更容易阅读。
语法:
这里, .x 是输入, .f 是你想应用的函数。map函数的输入可以是一个列表、一个向量或一个数据框。
注意:你需要用以下命令明确安装 purrr 包。
install.packages("purrr")
方法:
- 创建一个向量、一个列表和一个数据框
- 创建一个你想应用的自定义函数。
- 使用map()在向量、列表和数据框上应用自定义函数。
- 显示结果
使用整数数据类型工作
程序
输出
对于一个矢量:
矢量输出
对于一个列表:
列表输出
对于一个数据框。
数据框架输出
与字符数据类型一起工作
程序
输出
对于一个矢量。
矢量作为输出
对于一个列表。
列表作为输出
对于一个数据框:
数据帧作为输出