R语言中实现数据框中数据的替换

1、全部替换

复制代码
> c1 <- c("x", "z", "a", "b")
> c2 <- c("a", "ab", "d", "z")
> c3 <- c("d", "m", "n", "a")
> c4 <- c("x", "a", "m", "k") 
> dat <- data.frame(c1, c2, c3, c4)    ## 生成测试数据框
> dat
  c1 c2 c3 c4
1  x  a  d  x
2  z ab  m  a
3  a  d  n  m
4  b  z  a  k
> dat[dat == "a"] = 100   ## 将数据框中所有的a替换为100
> dat                     ##查看替换结果
   c1  c2  c3  c4
1   x 100   d   x
2   z  ab   m 100
3 100   d   n   m
4   b   z 100   k
复制代码

 

2、在指定列中进行替换

复制代码
> c1 <- c("x", "z", "a", "b")
> c2 <- c("a", "ab", "d", "z")
> c3 <- c("d", "m", "n", "a")
> c4 <- c("x", "a", "m", "k") 
> dat <- data.frame(c1, c2, c3, c4)   ## 生成测试数据
> dat
  c1 c2 c3 c4
1  x  a  d  x
2  z ab  m  a
3  a  d  n  m
4  b  z  a  k
> dat[,c(1,3)][dat[,c(1,3)] == "a"] = 100     ## 将1,3列中的a替换为100
> dat                         ## 替换结果
   c1 c2  c3 c4
1   x  a   d  x
2   z ab   m  a
3 100  d   n  m
4   b  z 100  k
复制代码

 

3、在指定列中替换, for循环实现

复制代码
> c1 <- c("x", "z", "a", "b")
> c2 <- c("a", "ab", "d", "z")
> c3 <- c("d", "m", "n", "a")
> c4 <- c("x", "a", "m", "k") 
> dat <- data.frame(c1, c2, c3, c4)     ## 生成测试数据
> dat
  c1 c2 c3 c4
1  x  a  d  x
2  z ab  m  a
3  a  d  n  m
4  b  z  a  k
> for (i in c(1,3,4)) {
+   dat[,i][dat[,i] == "a"] = 100             ## 利用for循环将1,3,4列中的a替换为100
+ }
> dat                                         ## 替换结果
   c1 c2  c3  c4
1   x  a   d   x
2   z ab   m 100
3 100  d   n   m
4   b  z 100   k
复制代码

 

4、在指定行中进行替换

复制代码
> c1 <- c("x", "z", "a", "b")
> c2 <- c("a", "ab", "d", "z")
> c3 <- c("d", "m", "n", "a")
> c4 <- c("x", "a", "m", "k") 
> dat <- data.frame(c1, c2, c3, c4)        ## 测试数据
> dat
  c1 c2 c3 c4
1  x  a  d  x
2  z ab  m  a
3  a  d  n  m
4  b  z  a  k
> dat[c(1,3),][dat[c(1,3),] == "a"] = 100    ## 将1,3行中的a替换为100
> dat
   c1  c2 c3 c4
1   x 100  d  x
2   z  ab  m  a
3 100   d  n  m
4   b   z  a  k
复制代码

 

5、利用for循环实现指定行的替换

复制代码
> c1 <- c("x", "z", "a", "b")
> c2 <- c("a", "ab", "d", "z")
> c3 <- c("d", "m", "n", "a")
> c4 <- c("x", "a", "m", "k") 
> dat <- data.frame(c1, c2, c3, c4)     ## 生成测试数据框
> dat
  c1 c2 c3 c4
1  x  a  d  x
2  z ab  m  a
3  a  d  n  m
4  b  z  a  k
> for (i in c(1,3,4)) {
+   dat[,i][dat[,i] == "a"] = 100       ##利用for循环实现指定行的替换
+ }
> dat
   c1 c2  c3  c4
1   x  a   d   x
2   z ab   m 100
3 100  d   n   m
4   b  z 100   k
复制代码

 

posted @   小鲨鱼2018  阅读(14340)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示