调查数据处理

问题描述 投票:0回答:1

我正在尝试在 R studio 中创建一个代码来操作调查数据。这是我需要遵循的步骤。这是我到目前为止的代码。

#install packages
install.packages("readxl") # to read excel file
install.packages("dplyr") # for data manipulation
install.packages("writexl") # to export data frame from excel

#import data
library(readxl)
Wendys_Data <- read_excel("Downloads/Wendys_Data.xls")
View(Wendys_Data)
library(dplyr)
library(writexl)

str(Wendys_Data)

#address missing variables first determine which values need to be replaced
#determine misssing values
colSums(is.na(Wendys_Data))

#step 1 omit the missing data, but save into another temporary dataframe
WendysData_temp <- na.omit(Wendys_Data)
# step 2 - calculate the statistic / in this case the median
median(WendysData_temp$q3a_1)
which(colSums(is.na(Wendys_Data)) > 145)

#variable respecification/ creating new variable groups
Wendys_Data$d5 <- case_when(
  (Wendys_Data$d5 = 7) ~ "N/A")

# export to Excel
library(writexl)
write_xlsx(Wendys_Data, )
  1. 有时缺失值由“不想回答”的响应表示,而 其他时候,参与者会完全跳过这个问题。许多人口变量 缺失值:教育 (D5)、收入 (D6)、就业状况 (D7) 和婚姻 状态(D8)。你会如何处理这些项目?
  2. 为上一个问题中标识的每个列创建一个新的变量列,并且 解决缺失值。您应该将每一列命名为 Recoded_OriginalColumn 姓名。例如,如果您重新编码 q7,那么新变量应该是 Recoded_q7
  3. 通过组合 Debit 从 D1 创建一个名为 Recoded_PaymentMethod 的新变量 卡片、支票和其他归为一类。新的变量列应保留 其他类别。
  4. 从 D3A 创建一个名为 Recoded_PeopleHome 的新变量,如下所示: A。来自 d3a_1:创建一个名为 Recoded_PeopleHome_Adults 的新变量:对于 18 岁以上的成年人,四人或四人以上应合并为一个标有“4+”的类别 布西 331 b.从 d3a_2、d3a_3 和 d3a_4:创建新变量 Recoded_PeopleHome_U5, Recoded_PeopleHome_U11, Recoded_PeopleHome_U17 其余三个年龄组(5 岁以下, 6-11 和 12-17),两个或多个应合并为一个类别,标有 “2+” C。每个新的变量列都应保留其他类别。 (提示:你 完成这个问题的步骤后,总共应该有 4 个新列。)
  5. 重新编码人口统计数据如下: A。创建一个名为 Recoded_Education 的新变量并将两个最低的组合起来 教育类别从 D5 到单一类别“高中或以下”。这 新的变量列应保留其他类别。 b.创建一个名为 Recoded_Income 的新变量并将三个最高的组合起来 D6 中的类别为“$100,000 或更多”。新的变量列应该 保留其他类别。 C。创建一个名为 Recoded_Employment 的新变量并结合家庭主妇, 退休和失业从 D7 归为一个类别,并带有您的标签 选择。新的变量列应保留其他类别。
  6. 创建一个名为 Recoded_S3A 的新变量,根据数字对受访者进行编码 他们在过去 4 周内在快餐店用餐的次数分为 3 组: 轻(1-4次)、中(5-8次)、重(9次以上)
  7. 将修改后的数据框导出到Excel,另存为 Wendys_revised_LastName_FirstInitial.

这里是数据集 DATA SET

我试过代码,但它不会运行

r dataframe data-manipulation
1个回答
1
投票

缺失值处理

在我的课堂上,通常的做法是将“不想回答”与普通缺失值合并。

(旁注:在某些情况下,您希望保持区别以分析不同类型的缺失 - 对于此任务有非常好的 R 包,例如

naniar
。但我认为这不是您的任务)

在我们的案例中,第一步是找出“不想回答”在您的数据中是如何表示的。通常,有一本密码本可以告诉您数据是如何编码的。

让我们假设它是“-7”(很常见)。

我们的目标是将所有

-7
转换为
NA
,这使得它们可以被R识别,因此计算将是准确的。

这里是一些直接的基本 R 语法,用于将变量重新编码为

NA
并将其保存为新列。
df
代表您的数据框。

df$recoded_variable[df$variable == -7] <- NA

您可以手动对所有列执行此操作,但一旦数据变大,这就不是可行的选择。

我们可以使用

dplyr
自动将其应用于列并使用 Recoded-prefix 创建新列。

关于

NA
的注意事项: 我在你的代码中看到
"N/A"
。除非你有充分的理由,否则请使用实际的
NA
。它是 R 的内置缺失值指标。其他一切都很难处理。

© www.soinside.com 2019 - 2024. All rights reserved.