SAS:转换转置还是SQL?

SAS:转换转置还是SQL?,sql,sas,transpose,Sql,Sas,Transpose,我还有一个简短的问题。我目前有一个相当大的数据集,如下所示: Rank Count Score 1 100 10 Romeo & Juliet . . Shakespeare . . 我需要以某种方式维护排名、计数和分数(1100、10),并为书名创建一个新列,为作者创建另一个列 在SAS中有这样做的好方法吗?我画了一个空白,任何帮助都将不胜感激。谢谢 首先,在我给出答案之前,获得具体答案的关键是问一个精确而详细的问题 从你不精确的问题和评论中,我想我拼凑出了你

我还有一个简短的问题。我目前有一个相当大的数据集,如下所示:

Rank  Count  Score
1      100    10
Romeo & Juliet .  .
Shakespeare .  .
我需要以某种方式维护排名、计数和分数(1100、10),并为书名创建一个新列,为作者创建另一个列


在SAS中有这样做的好方法吗?我画了一个空白,任何帮助都将不胜感激。谢谢

首先,在我给出答案之前,获得具体答案的关键是问一个精确而详细的问题

从你不精确的问题和评论中,我想我拼凑出了你的问题。事实上,这是我在过去遇到过的

您在评论中说数据位于csv文件中,但您的示例似乎显示了您尝试导入后的数据。根据您的描述,单个观测值分布在csv中的3行数据上。我假设数据是这样的(我制作了第二个obs):

下面是按结构化方式读取文件的数据步骤

data books;
infile '/folders/myfolders/books.csv' dlm=',' n=3 truncover;
input rank score count #2 book $50. #3 author $30.;
run;
首先,让我解释一下
infle
语句中的选项。选项
n=3
指定输入缓冲区中有3行输入数据可用,对应于组成单个obs所需的行数。我们将在
input
语句中利用此选项。
truncover
选项可确保SAS对值小于指定长度的变量的读取不会超过行尾。例如,这个选项允许我为书名指定一个50字符长度的信息,即使书名比这个长度要短一些

让我们转到
input
语句。由于每个三行组的第一行是标准的、逗号分隔的数据,因此读取排名、分数和计数不需要任何特殊的内容。
#2
符号告诉SAS移到三行组的第二行阅读书名。当然,
#3
将行指针移动到三行组的最后一行,以读取最终变量author

以下是最终输出的结果:


您的数据结构不合理。请进一步解释您的问题。所说的大数据集是文本文件还是当前SAS数据集?你有什么,你想让它看起来像什么?这正是我收到的数据的样子,也是为什么我需要以这样的方式对其进行转换:排名计数分数标题作者Reeza-数据是一个csv,我导入SAS,使其成为我可以实际使用的数据集。听起来你正在处理多个数据集一条记录的行数。如果您发布更多示例数据,这将有所帮助。我相信你很清楚,但我还没有看到全部情况。
data books;
infile '/folders/myfolders/books.csv' dlm=',' n=3 truncover;
input rank score count #2 book $50. #3 author $30.;
run;