为什么as.data.frame在R编程中这样做?

为什么as.data.frame在R编程中这样做?,r,R,首先,我想告诉大家,我是R编程新手。我在做一些R代码的实验。我正面临一些意想不到的奇怪行为。我想有人能帮我弄明白 我运行以下代码从CSV文件读取数据: normData= read.csv("normData.csv"); 我的normData看起来像: 但当我运行以下代码以形成数据帧时: datExpr0 = as.data.frame(t(normData)); 我得到以下数据: 有人能告诉我,额外的原始数据(v1、v2、v3、v4、v5、v6)是从哪里来的吗?尝试使用: setNa

首先,我想告诉大家,我是R编程新手。我在做一些R代码的实验。我正面临一些意想不到的奇怪行为。我想有人能帮我弄明白

我运行以下代码从CSV文件读取数据:

normData= read.csv("normData.csv");
我的
normData
看起来像:

但当我运行以下代码以形成数据帧时:

datExpr0 = as.data.frame(t(normData));
我得到以下数据:

有人能告诉我,额外的原始数据(v1、v2、v3、v4、v5、v6)是从哪里来的吗?

尝试使用:

setNames(as.data.frame(t(normData[-1])), normData[[1]])
但是,最好看看是否可以使用
read.table
中的
row.names
参数直接读取“X”作为行名。然后您应该能够直接使用
as.data.table(t(…)


下面是一个小示例来说明发生了什么:

data.frame
开头,第一列为字符:

df <- data.frame(A = letters[1:3],
                 B = 1:3, C = 4:6)
df
#   A B C
# 1 a 1 4
# 2 b 2 5
# 3 c 3 6
因此,我们首先删除列,并使用列中的值替换“V1”、“V2”。。。名字

setNames(as.data.frame(t(df[-1])), df[[1]])
#   a b c
# B 1 2 3
# C 4 5 6
尝试使用:

setNames(as.data.frame(t(normData[-1])), normData[[1]])
但是,最好看看是否可以使用
read.table
中的
row.names
参数直接读取“X”作为行名。然后您应该能够直接使用
as.data.table(t(…)


下面是一个小示例来说明发生了什么:

data.frame
开头,第一列为字符:

df <- data.frame(A = letters[1:3],
                 B = 1:3, C = 4:6)
df
#   A B C
# 1 a 1 4
# 2 b 2 5
# 3 c 3 6
因此,我们首先删除列,并使用列中的值替换“V1”、“V2”。。。名字

setNames(as.data.frame(t(df[-1])), df[[1]])
#   a b c
# B 1 2 3
# C 4 5 6

@维西里,很高兴听到这有帮助。但一定要查看
read.table
/
read.csv
中的
行.names
参数。这可能是一个更直接的解决方案,但如果没有实际csv文件的一些示例行,我就说不出来了。@vessilli,很高兴听到它有帮助。但一定要查看
read.table
/
read.csv
中的
行.names
参数。这可能是一个更直接的解决方案,但如果没有实际csv文件的一些示例行,我就说不出来。