r语言 - 在划分两个数据框之前将列内容大写

  • 本文关键字:数据 两个 r语言 划分 r dplyr
  • 更新时间 :
  • 英文 :

if (!require("dplyr")) install.packages("dplyr");library(dplyr)
ID <- c("AA", "BB", "CC")
ID2 <- c("AAa", "bBB", "ccC")
C1 <- rnorm(3,5,1)
C2 <- rnorm(3,6,1)
C3 <- rnorm(3,7,1)
DF1 <- data.frame(ID, ID2, C1, C2, C3)
ID <- c("AA", "BB", "CC")
ID2 <- c("AAA", "BBb", "CCc")
C1 <- rnorm(3,5,2)
C2 <- rnorm(3,6,2)
C3 <- rnorm(3,7,2)
DF2 <- data.frame(ID, ID2, C1, C2, C3)
DF1 <- DF1 %>%
mutate(ID2 = toupper(ID2))
DF2 <- DF2 %>%
mutate(ID2 = toupper(ID2))
DF3 <- DF1[-1]/DF2[-1]

我的目标是在划分它们之前首先将 DF1 和 DF2 中的 ID2 列大写。

如果没有"toupper"代码,这个脚本可以毫无问题地运行,但是一旦添加了"toupper"代码以大写ID2,我就会收到以下错误消息:"FUN(左,右(中的错误:二进制运算符的非数字参数"。

我知道当我执行代码 DF1[-1]/DF2[-1] 时,ID2 列将是 N/A 且无关紧要。我也知道我可以使用"cbind"稍后将 DF2 或 DF2 中的 ID1 列组合起来,然后将其大写。

我只是想知道:

  1. 为什么我的代码在 DF2 和 DF2 中的列"ID2"大写 师不行?
  2. 如何编辑我的代码,以便DF2和DF2中的"ID1"列可以 分部前大写?

谢谢!

有两列('ID', 'ID2'(是character

str(DF1)
#'data.frame':  3 obs. of  5 variables:
# $ ID : chr  "AA" "BB" "CC"
# $ ID2: chr  "AAA" "BBB" "CCC"
# $ C1 : num  3.29 7.05 4.74
# $ C2 : num  5.85 5.36 7.56
# $ C3 : num  9.39 8.06 7.94

因此,我们需要删除第一列和第二列,而不是-1即删除第一列

DF3 <- DF1
DF3[-(1:2)] <- DF1[-c(1:2)]/DF2[-(1:2)]    
DF3
#  ID ID2        C1        C2       C3
#1 AA AAA 0.4377081 0.9719322 1.221487
#2 BB BBB 3.6132329 0.7321244 1.105958
#3 CC CCC 0.9420565 0.8596261 1.115767

最新更新