当前位置: 首页 > 知识库问答 >
问题:

如何根据R中的一行标记Dataframe中的所有变量

施俊驰
2023-03-14

我对整个数据帧中的标签有两个问题:

我有一个患者的横截面数据集(每行是一个患者)和变量(每列是一个变量)。第一行是变量名,第二行是标签。例如,第1行的BMI和第2行的体重指数。

问题1:如何让R识别第二行是一个标签,而不单独键入每个标签age=age等?有数百个变量需要标记。也许在进口的时候?或者通过将标签分离到不同的数据帧?我似乎找不到一个解决方案,除了为每个变量单独键入它,或者将它放入一个只有变量名和标签的单独数据集中,并使用match from R:Assign data frame列的变量标签

library(Hmisc)

var.labels = dat2

label(data) = as.list(var.labels[match(names(data), names(var.labels))])

label(data)
                     age                      sex 
          "Age in Years" "Sex of the participant"   

问题2:如果我的数据中所有0值都是“否”,而所有“1”值都是“是”,我如何将所有0值标记为“否”,将所有1值标记为“是”?我没有找到任何代码,除了个人标签。

非常感谢!!!

以下是它的迷你版本:dput:结构(列表(患者=c(“患者”、“T1”、“T2”、“T3”、“T4”、“T5”、“T6”、“T7”、“T8”、“T9”、“T10”),变量1=c(“变量标签”1","2","1","4","2","2","1","1","1","1","1"),变量2=c("变量标签2","3","1","2","2","2","2","1,2,1,1),row.names=c(NA,-11L),类=c(tbl_df,tbl,data.frame))

共有1个答案

颛孙兴旺
2023-03-14
library(tidyverse)

string <-
"Body mass index, Age, Answer1, Answer2
BMI, Age, Answer1, Answer2
20, 27, 1, 0
29, 42, 1, 1"

# reading in column names (both short and long)
df_names <- read_csv(file = string, n_max = 2, col_names = F)

# reading in values
df_values <- read_csv(file = string, skip = 2, col_names = F) %>%
  mutate(across(-(X1:X2), ~if_else(.x == 1, "yes", "no"))) # replacing 1 with yes and 0 with no

names(df_values) <- as.character(df_names[1,]) # assigning long names as names
names(df_values) <- as.character(df_names[2,]) # assigning short names as names
 类似资料:
  • 最近没有使用当前tidyverse动词来回答这个问题(R 4.1 所需的输出应如下所示。感谢您对此的任何帮助!

  • 我有以下矩阵: 我只想删除id为3的行。请注意,当我使用时,它仍然保留,因为id本身是唯一的。

  • 问题内容: 如何DataFrame基于Python Pandas中某些列的值从中选择行? 在SQL中,我将使用: 问题答案: 要选择列值等于标量的行,请使用: 要选择列值可迭代的行,请使用: 结合以下条件: 注意括号。由于Python的运算符优先级规则,绑定比和更紧密。因此,最后一个示例中的括号是必需的。没有括号 被解析为 这导致一个系列的真值是模棱两可的错误。 要选择列值不相等的行 ,请使用:

  • 下面是我使用dplyr尝试的代码,

  • 本文向大家介绍如何找到R数据帧中所有值的均值?,包括了如何找到R数据帧中所有值的均值?的使用技巧和注意事项,需要的朋友参考一下 如果数据框具有所有数字列,那么我们可能有兴趣查找该数据框中所有值的均值,但是由于数据框对象不是数字,因此无法直接完成此操作。因此,要查找R数据帧中所有值的均值,我们需要先将其转换为矩阵,然后使用均值函数。 示例 请看以下数据帧- 输出结果 使用均值函数查找均值- 示例 输