如何比较来自不同数据集的变量并在 RStudio 中相应地改变变量?
How do I compare variables from different datasets and mutate the variable accordingly in RStudio?
比较来自两个不同数据集的两个项目并相应地改变变量
总结
亲爱的 Whosebug 社区,
我正在尝试将来自一个数据集 (data1) 的 column/variable (item1) 与来自不同数据集 (data2) 的 column/variable (item1) 进行比较。我想 mutate
将数据集 1 中的 column/variable (item1) 与数据集 data2 的第三个变量(字母)进行比较。
不幸的是,我收到错误消息 “UseMethod("mutate_") 出错:
'mutate_' 的不适用方法应用于 class“合乎逻辑”的对象。 使用我的代码。
我创建了两个数据示例集和一个显示我尝试使用 R 生成的输出的数据集,您可以在下面的保管箱 link 中找到。
下载到示例数据集(+ 所需输出的可视化)
https://www.dropbox.com/sh/eido04eiocuw06l/AABiCr2EpRf4PPsb1HYLLGFna?dl=0
我的代码
data1 <- read.csv2("data 1.csv")
data2 <- read.csv2("data 2.csv")
attach(data1)
attach(data2)
data1 <- as.data.frame(data1)
data2 <- as.data.frame(data2)
if(data1$item.1 = data2$item.1) %>%
mutate(data1$item.1 == data2$letter)
背景
我从 moodle 下载了一个大数据集,我需要转换数据集才能进行分析。今天下午我和我的同事一起尝试这个太久了,现在我们希望得到一些建议(因为我们刚开始使用 R)。
在此先致谢,祝您有愉快的一天!
卡拉
data1 <- read.csv2("Whosebug/data_1.csv")
data2 <- read.csv2("Whosebug/data_2.csv")
# Get data in format where there are only two columns
long_data1 <- tidyr::gather(data1, key = "key", value = "value", -person)
long_data2 <- tidyr::gather(data2, key = "key", value = "value", -letter)
# Merge on those two columns
merged_data <- merge(long_data1, long_data2, by = c("key", "value"))
# Tidy up the results
merged_data <- subset(merged_data, select = c(person, letter, key))
final_data <- tidyr::spread(merged_data, key = key, value = letter)
我能想出的最干净的解决方案是获取 长 格式的数据 - 每个观察值都有自己的行 - 然后合并列。 tidyr
包在这方面做得最好,如果您还没有安装它,则需要与 install.packages(tidyr)
一起安装。
比较来自两个不同数据集的两个项目并相应地改变变量
总结
亲爱的 Whosebug 社区,
我正在尝试将来自一个数据集 (data1) 的 column/variable (item1) 与来自不同数据集 (data2) 的 column/variable (item1) 进行比较。我想 mutate
将数据集 1 中的 column/variable (item1) 与数据集 data2 的第三个变量(字母)进行比较。
不幸的是,我收到错误消息 “UseMethod("mutate_") 出错: 'mutate_' 的不适用方法应用于 class“合乎逻辑”的对象。 使用我的代码。
我创建了两个数据示例集和一个显示我尝试使用 R 生成的输出的数据集,您可以在下面的保管箱 link 中找到。
下载到示例数据集(+ 所需输出的可视化)
https://www.dropbox.com/sh/eido04eiocuw06l/AABiCr2EpRf4PPsb1HYLLGFna?dl=0
我的代码
data1 <- read.csv2("data 1.csv")
data2 <- read.csv2("data 2.csv")
attach(data1)
attach(data2)
data1 <- as.data.frame(data1)
data2 <- as.data.frame(data2)
if(data1$item.1 = data2$item.1) %>%
mutate(data1$item.1 == data2$letter)
背景
我从 moodle 下载了一个大数据集,我需要转换数据集才能进行分析。今天下午我和我的同事一起尝试这个太久了,现在我们希望得到一些建议(因为我们刚开始使用 R)。
在此先致谢,祝您有愉快的一天!
卡拉
data1 <- read.csv2("Whosebug/data_1.csv")
data2 <- read.csv2("Whosebug/data_2.csv")
# Get data in format where there are only two columns
long_data1 <- tidyr::gather(data1, key = "key", value = "value", -person)
long_data2 <- tidyr::gather(data2, key = "key", value = "value", -letter)
# Merge on those two columns
merged_data <- merge(long_data1, long_data2, by = c("key", "value"))
# Tidy up the results
merged_data <- subset(merged_data, select = c(person, letter, key))
final_data <- tidyr::spread(merged_data, key = key, value = letter)
我能想出的最干净的解决方案是获取 长 格式的数据 - 每个观察值都有自己的行 - 然后合并列。 tidyr
包在这方面做得最好,如果您还没有安装它,则需要与 install.packages(tidyr)
一起安装。