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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM